这篇写什么?
「有声但大小不对」和「完全无声」是两类问题。无声见 无声排查手册;本文专讲 音量 类投诉:
- 加减不明显 / 低阶太小 / 高阶突然跳大
- Auto vs None、Dolby vs PCM 片源响度不一致
- 不同 App 之间音量差一截
- 播完 DVB 再播 OTT,OTT 突然变小
- dump 显示进 MS12 正常、出 MS12 异常
框架里「音量键 → Policy → Flinger → HAL」的链路见:Android 音量设置流程。DRC 的 ±8 路径见:MS12 DRC RF / LINE。


一句话:
bugreport + AV info(debug 再加 aml_tool)
→ 曲线问题?改 volumes XML
→ Auto/None 或 Dolby/PCM 差 8dB?查 DRC
→ 跨 App?查 loudness 规范 + flinger 格式
→ DVB→OTT 变小?查 AD / continuous / patch
→ 进 MS12 好、出 MS12 坏?更新 MS12 库
〇、音量问题怎么抓 Log
| 版本 | 最小集合 |
|---|---|
| 正式 / user | bugreport + Get AV information from STB(AV 信息拉到 client) |
| debug | 以上全部 + 播放过程中用 aml_tool 抓音频数据 |
aml_tool 的用途与无声排查相同:分段看 进 MS12 前 / 出 MS12 后 / ALSA 等节点的 PCM 是否「该有的响度」。具体操作按平台文档 Aml_debug_tool 录制音频数据方法 执行(与 无声排查里的 aml_tool 章节 同一套工具)。
工单建议同时附上:
- 现象:偏大 / 偏小 / 哪几档异常 / Auto 还是 None
- 片源:Dolby 还是 PCM/MPEG;App 名称
- 是否刚播过 DVB / 切过 AD
- 电视型号(后级 DRC 会影响 Auto 出 Dolby 的听感)
一、常见问题 1:加减不明显 / 低阶太小 / 音量太大
这类多半不是「解码坏了」,而是 音量曲线(index → dB) 不合适。
| 诉求 | 常见调法 |
|---|---|
| 低音量太小 | 低阶需要 更大衰减(曲线更「凹」) |
| 高阶突然跳变 | 高阶衰减宜 较小、更平滑,避免相邻 index 差过大 |
| 整体偏大/偏小 | 整体平移或改表终点增益 |
公版用得最多的是 25 阶 和 100 阶 曲线。需要改时,提供并修改:
/vendor/etc/audio_policy_volumes.xml
/vendor/etc/default_volume_tables.xml
改完用固定片源、固定输出通路(喇叭 / HDMI / ARC)扫一遍 0→最大,确认低阶可用、高阶不炸、相邻档听感连续。
Policy 如何把 index 换成 dB,见 音量设置流程。
二、常见问题 2:Auto / None 不同,或 Dolby / PCM 片源不同
这类优先怀疑 MS12 DRC 路径,而不是先改曲线。
2.1 同一片源:Auto 与 None 响度不一致
| 输出 | 常见行为(RF 等路径,细节随 Android 版本略有差异) |
|---|---|
| None → PCM 出 | MS12 对 PCM 出口常有约 +8 dB 一类补偿 |
| Auto → Dolby 出 | MS12 出口往往 不再 +8;电平靠后级 TV 读流内 DRC 再增益 |
因此:若后级 不支持 DRC 或 DRC 配置不对,Auto(Dolby 出)会比 None(PCM 出)明显偏小或偏大。排查时同时看:
- 盒子 DRC 模式(RF / LINE / Auto)
- 电视是否解杜比并执行 DRC metadata
- Select Formats / 输出模式是否真的走到了你以为的那条路径
完整四条路径见:MS12 DRC:RF / LINE。
2.2 Dolby 片源 vs PCM 片源响度不同
在 RF 一类模式下,对 进库的 Dolby 常先做约 -8 dB(对白归一 / 头余量),而 PCM 是否预衰减取决于 Android 版本与产品改动。两边不对齐时,听感就会差一截。
常见改法: 调整 PCM 进 MS12 前是否衰减 8 dB(与杜比路径对齐),而不是盲目改系统曲线。改前先确认大版本(A11 / A12 / A14)——PCM 规则并不相同。
三、常见问题 3:不同 App 之间音量不同
两层原因经常叠在一起:
3.1 内容本身 loudness 标准不同
不同平台 / App 的目标响度本来就不一样(流媒体、广播、游戏各有规范)。对比表可参考公开整理:Loudness Standards Full Comparison。
同一系统音量刻度下,「Netflix 比某本地播放器响」不一定是盒子 bug。
3.2 同一 App:None / Auto 传下来的格式不同
有的 App 在 None 与 Auto 下送给 HAL 的 压缩格式 / PCM 不同,后续是否进 MS12、是否走 DRC 也就不同。
必做:
adb shell dumpsys media.audio_flinger
对照问题复现瞬间:track 格式、采样率、是否 standby、路由设备。确认「传给 Audio HAL 的到底是不是你以为的那种格式」。
四、常见问题 4:播完 DVB 再播 OTT,OTT 音量变小
典型线索:上层关闭 Audio Description(AD),触发音频通路重启,HAL 侧 continuous 被置 0,数据走进另一条写缓冲路径,增益行为与「连续播放」不一致。
日志示例:
I/dtvbcitserver: request resource:Player.setAudioDescriptionOn, json:[0,false]
I/audio_hw_primary: [audiohal_kpi]++audio_dtv_patch_process_threadloop Enter.
| 信号 | 含义 |
|---|---|
setAudioDescriptionOn + [0,false] |
上层调用 关闭 AD |
| 关闭 AD 可能 重启 audio | continuous → 0 |
数据走 process_buffer_write |
与 continuous 路径音量处理不同 → OTT 听感变小 |
排查建议:
- 复现「先 DVB 再 OTT」时搜
setAudioDescriptionOn、audio_dtv_patch、continuous - 对比「冷启动直接播 OTT」与「DVB→OTT」两次
dumpsys media.audio_flinger/ HAL 增益 - 修复方向通常在:AD 开关是否不必要地重启通路、重启后 continuous / 音量状态是否恢复
五、常见问题 5:aml_tool 显示「进 MS12 好、出 MS12 坏」
分段 dump 后:
| 现象 | 倾向 |
|---|---|
| 进 MS12 前电平正常,出 MS12 后异常 | MS12 编解码 / 库参数 出错概率高 |
| 进 MS12 前已偏 | 先查解码、预衰减、App 源 loudness、曲线 |
| ALSA 后才偏 | 驱动 / tinymix / 后级增益 |
进好出坏时,优先尝试 更新 MS12 库(版本、配置、与芯片/efuse 匹配),并固定标准片复测。分段思路与无声排查一致,只是关注点从「有没有数」变成「响度对不对」。
六、现场排查清单
- bugreport + Get AV information from STB
- debug:播放中 aml_tool 分段 dump
- 现象归类:曲线 / Auto·None / App / DVB→OTT / MS12 进出
- 曲线:
audio_policy_volumes.xml+default_volume_tables.xml(25 / 100 阶) - DRC:模式 + 输出 PCM/Dolby + 后级 TV;详见 DRC 文
-
dumpsys media.audio_flinger看格式与路由 - DVB 相关:搜 AD 关闭、
continuous、process_buffer_write - dump:进 MS12 OK / 出 MS12 NG → 考虑更新 MS12
先抓全 log 与 dump
│
加减档位问题? ──是──→ 改音量曲线 XML
│否
Auto/None 或 Dolby/PCM 差约 8dB? ──是──→ DRC / 后级 TV / PCM 预衰减
│否
跨 App? ──是──→ loudness 规范 + flinger 格式
│否
刚播过 DVB? ──是──→ AD / continuous / DTV patch
│否
进 MS12 好、出 MS12 坏? ──是──→ 更新 MS12 库
七、小结
音量投诉多数落在五层之一:曲线、DRC、内容/App 规范、DTV 状态机、MS12 库。
最容易踩的坑:
- 把 Auto/None 差 8 dB 当成曲线问题,其实是 DRC / 后级 TV
- 把 跨 App 响度差 当成 HAL bug,其实是源 loudness 或格式路径不同
- 忽略 DVB→OTT 后的 AD 关闭与
continuous=0 - 不 dump 就猜:进 MS12 已坏还是出 MS12 才坏,结论完全不同
把「抓全信息 → 对号入座五类 → 该改 XML / DRC / 状态机 / 库」跑一遍,大部分音量问题都能在一天内收敛到具体一层。
相关阅读:
评论
还没有评论,来做第一个吧
赞同、吐槽、提问都行,评论区开放