高通音乐播放的音量调试和FM 音量调试

来源:互联网 发布:seo by yoast 编辑:程序博客网 时间:2024/06/02 03:11

Modify codes as shown in below:

const AudioPolicyManagerBase::VolumeCurvePointAudioPolicyManagerBase::sSpeakerMediaVolumeCurve[AudioPolicyManagerBase::VOLCNT]= {-{1, -56.0f}, {20, -34.0f}, {60, -11.0f}, {100, 0.0f}+{1, -29.7f}, {20, -20.1f}, {60, -11.0f}, {100, 0.0f}};

 说明:播放音乐时有15个等级,换算成
100等分就是100*index/15,最小到最大对应为6,13,
20, 26, 33,40, 46, 53, 60, 66, 73, 80, 86, 93, 100,
可以根据这个index在图里找到对应的分贝值,所以
如果低7级声音太小,只要把前面两个点的坐标往上
提就可以了.

这里写图片描述

 可以修改DSP里的CodecRxGain来改变FM的音量,但因为Audio Record
Path也用到CodecRxGain,因此修改CodecRxGain的会同时改变录音的音
量;
 代码上修改:
 在文件Msm-pcm-routing-v2.c (kernel\sound\soc\msm\qdsp6v2) 中将以下宏:

define INT_RX_VOL_MAX_STEPS 0x2000
define INT_RX_VOL_GAIN 0x2000

我们这边默认都是0x2000,可适当加大至0x4000;
 在文件AudioHardwareALSA.cpp 函数 AudioHardwareALSA::setParameters() 修
改以下处
…….

fm_volume = lrint((fm_volume * 0x4000) + 0.5); /*这个地方默认是0x2000,将其修改为以上设置的宏一样大*/ALOGV("set Fm Volume(%f)\n", fm_volume);ALOGV("Setting FM volume to %d (available range is 0 to 0x4000)\n",fm_volume);mALSADevice->setFmVolume(fm_volume);param.remove(key);
阅读全文
0 0
原创粉丝点击