本文档以SC826-CN-01(msm8953平台,Android 7.1)为例,说明如何调节通话音量大小。
客户板子通过耳机通道 HPH_L / HPH_R -》外部PA(功放) -》喇叭。
在设置界面调整音量大小,对系统的各种声音包括电话拨号键盘的声音大小都有效果。但是无法改变通话音量。 而系统默认的通话增益较大,通过外部PA放大后,震耳欲聋。
高通音频的文档很多,不一一列举,这里只需要知道一点,通话(Voice)音频和系统其它音频走的是完全不同的硬件通道。
高通把音频分为三类:
Audio Recording
Audio Playback
Voice
我们现在要解决的问题,就是调小Voice增益。
这里要提到一个高大上的音频调试工具:QACT, 注意不要和QCAT搞混了。
安装之后,运行,界面如下:
先"Open ACDB File On Disk",打开一个ACDB文件,ACDB文件是高通的音频数据。
系统路径:
/etc/acdbdata/MTP/
可以通过 adb pull etc/acdbdata/MTP d:/ 导出相应文件使用。
源代码路径如下:
vendor/qcom/proprietary/mm-audio/audcal/family-b/acdbdata/8953/MTP
系统路径下的文件和源代码路径下的文件一样,但可能系统路径下的文件缺少 “workspaceFile.qwsp” 文件,*.qwsp文件是工程文件,其他*.acdb文件是数据文件。缺少*.qwsp文件的话,就从对应的源代码路径拷贝一个,和其他*.acdb文件放在一个目录下。
打开acdb文件之后,界面如下:
这里我们选择 "Voice" 通道
再选择 "HANDSET_MIC & HEADSET_SPKR_STEREO",为啥选这个后面实时在线调试的时候会讲。
通道选好后,显示的数据如下:
上图RX_VOICE_SPKR_GAIN = 8.0 dB,RX_VOICE_DEC_GAIN = -3.0 dB
先往小的改,幅度大点,改成 RX_VOICE_SPKR_GAIN = -20.0 dB,RX_VOICE_DEC_GAIN = -20.0 dB。
然后双击 RX_VOICE_SPKR_GAIN 的图框,出现如下界面:
点击 “Batch Copy”,按下图进行选择:
然后双击 RX_VOICE_DEC_GAIN 图框,进行同样的操作。
修改完之后,点击"Save As":
点击 “OK”,保存即可。
两种测试方法
替换掉vendor/qcom/proprietary/mm-audio/audcal/family-b/acdbdata/8953/MTP 下的文件,全部编译,烧录。
2. adb测试
把acdb文件放在 d:\3 目录下。
adb root
adb remount
adb push d:\3 /etc/acdbdata/MTP/
重启系统。
可以听到通话音量已经明显变小。
另外也可以通过usb接口,实时在线调试音频数据。
在QACT开始界面,选择 "Connect To Device",实测user版本也能连接上。
连接时可能会提示缺少"*.qwsp",把源代码路径下的 "workspaceFile.qwsp"放在硬盘,哪个路径都行,选择它即可。
然后照下图,点选 "DSP Calibration",进入实时在线调试模式。
然后进行通话,没事猛点 "Refresh" 按钮,就能看到音频通道实时的变化,这样我们能确定所使用的Voice通道就是 "Voice: HANDSET_MIC & HEADSET_SPKR_STEREO"
修改方法同离线修改一样。
太多,不写了。
https://shimo.im/docs/hdJRWhjt9DKYyPhP/