KunSpace
返回博客

Apple TV Netflix 拖进度条无声:config_output 里补上 mute_start

2026年6月27日
尚无阅读

读完了?别空手走啊 😏

若有所获,赐一赞 — 作者会假装很忙实则刷新页面

写评论

赞同、吐槽、提问都行,评论区开放

这篇写什么?

双屏电视、不接 Soundbar,HDMI1 接 Apple TV

异常 现象
异常 1 Home 界面:右移有焦点音效,左移音效消失
异常 2 打开 Netflix 播片,拖动进度条无声

初步对比发现:能复现的版本与「刚合入 pop 音相关改动」的版本靠近;更老的基线不易复现。最终修复点很集中:在 config_output 里,对 HDMI-IN / ATV / LINEIN 等 patch 源,除了 need_do_avsync,再补上 adev->mute_start = true

一句话:

切源 / seek / 焦点音效 → 要重建输出、做 AV sync
  → 只标 need_do_avsync、不 mute_start
  → 流未就绪就可能「该响不响」
  → 先 mute_start,等同步与流就绪再出声

mute_start 配合 AV sync

相关:HDMI Pop 音两招TV HDMI-IN Patch


一、现象与版本线索

复现条件

  1. 双屏电视,不接 Soundbar
  2. HDMI1 接 Apple TV,停在 Home
  3. 左右移焦点听 UI 音效;进 Netflix 拖进度条

版本对比(工程经验)

观察 含义
较新版本易复现,较老基线不易 中间合入过影响输出时机的改动(如 pop 相关 fade / 通路优化)
仅比对 .so MD5 可能「一样」 库文件相同不等于整机行为相同;仍要以 逻辑与实机 为准
问题落在 audio patch / 输出配置时机 不是 Netflix 本身「坏了音轨」

Pop 修复改变了 进出台、淡入淡出、写硬件节奏;若 AV sync 窗口里没有配合 启动静音,更容易出现「焦点音效单边丢、seek 后哑」这类时序问题。


二、根因:AV sync 窗口里过早出声 / 状态不齐

HDMI-IN(Apple TV)在焦点音效、拖进度条时,会频繁:

  • 重建或重配输出(MS12 / patch)
  • AV 同步(avsync)
  • 经历短时缓冲、格式与时间戳对齐

代码里本来就会:

adev->audio_patch->need_do_avsync = true;

表示「接下来要做音画同步」。若此时 没有 把设备置于「先别出声」的启动静音:

  • 同步未完成、流未初始化完整
  • 上层/焦点音效、seek 后的新时间点音频
  • 可能落到 该响的时段被跳过或路由空窗 → 听感就是无声、或左右焦点表现不一致

所以根因表述为:audio patch 侧同步与输出启动时序不齐;不是单纯「音量被写成 0」。


三、修复:mute_start = true

config_output 中,当成功配输出且当前是外部 patch 源时:

if (ret == 0 && adev->audio_patch &&
    (adev->patch_src == SRC_HDMIIN ||
     adev->patch_src == SRC_ATV ||
     adev->patch_src == SRC_LINEIN)) {
    adev->audio_patch->need_do_avsync = true;
    adev->mute_start = true;
    ALOGI("set ms12, then do avsync!");
}

config_output:need_do_avsync + mute_start

字段 作用
need_do_avsync = true 标记需要做音画同步
mute_start = true 强制先静音,等音频流与同步都就绪,再开始正常输出

效果:

  • 避免「半就绪」状态把无效/空窗当成正式播放
  • seek、焦点音效触发的重配,都先过同一扇「静音门」
  • 同步完成后再出声 → Netflix 拖进度条、Home 焦点音效恢复正常

覆盖源:SRC_HDMIINSRC_ATVSRC_LINEIN——凡走 TV patch、需要 avsync 的外输入,一并处理。


四、和 Pop 修复的关系(怎么理解「回归」)

改动 目标 可能副作用
Pop:ease-in/out、进出台优化 少「啪」 改变 mute/写硬件时机
本修:mute_start 同步完成前先哑 堵住 seek/焦点空窗无声

不是互相否定,而是 时序配套

Pop 补丁让切换更「软」
  → 同步窗口变敏感
  → 需要 mute_start 明确「未就绪不出声」

排查类似回归时:先确认最近是否动过 fade / mute / patch 启停,再查 config_output 是否漏了启动静音。


五、验证清单

  • Apple TV Home:左右移焦点,音效都在
  • Netflix:多次拖进度条,seek 后有声
  • 不接 Soundbar / 接 ARC 各测一轮(产品矩阵)
  • log 可见 set ms12, then do avsync!,且随后能正常解静音出声
  • 回归 pop:切口、开关 Tuner 是否仍可接受

六、小结

项目 内容
现象 Apple TV 焦点音效异常;Netflix 拖进度条无声
根因 patch 重配 / AV sync 未完成时输出时机不对
修复 config_output 对 HDMIIN/ATV/LINEIN 设 mute_start = true
口诀 要做 avsync,就先 mute_start;就绪再响。

相关阅读

评论

还没有评论,来做第一个吧

赞同、吐槽、提问都行,评论区开放