先看最终需要修改哪里:
framework层通过jni最终会调用到AudioPolicyManagerBase.cpp中的checkAndSetVolume()函数
路径:\hardware\libhardware_legacy\audio\AudioPolicyManagerBase.cpp
其中的volume是放大比例:从0.00 ~ 1.00
status_t AudioPolicyManagerBase::checkAndSetVolume(int stream,
int index,
audio_io_handle_t output,
audio_devices_t device,
int delayMs,
bool force)
{
………………
//float driverVol[6]= {0.00,0.02,0.03,0.04,0.05,0.06};
//float volume = computeVolume(stream, index, output, device);
//if( index < 6)
//{
// volume = driverVol[index];
//}
float volume = 0.20;
float driverVol[16]= {0.00,0.10,0.20,0.30,0.40,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00};
if( index < 16)
{
volume = driverVol[index];
}
ALOGD("AudioPolicyManagerBase::checkAndSetVolume %d,%f",index,volume);
// We actually change the volume if:
// - the float value returned by computeVolume() changed
// - the force flag is set
}
image.png
image.png
网友评论