APM中流音量的设置流程
2020-07-15 10:33:35 0 举报
Android N APM设置流的音量流程
作者其他创作
大纲/内容
checkAndSetVolume()
applyStreamVolumes() 设置流的音量
startSource() 打开输出流
注意!!!该函数为虚函数,最终将调用到高通的实现类同名函数里
注意!!!搜索源码可发现,高通实现了自己的APM,具体路径为:hardware/qcom/audio/policy_hal/AudioPolicyManager.cpp
setOutpoutDevice() 设置输出流设备
volIndexToAmpl() 将index转换为float类型设置到硬件
AudioPolicyManager(APM)
setStrategyMute()
computeVolume()
系统中有两种音量:主音量和流音量主音量可通过音量键调节,流音量可通过AudioManager提供的接口调节,APM刚加载时会根据配置文件给每种流设置一个默认值一路音频流的音量=主音量×流音量
startOutput() 向外输出音频流
提醒!!!该时序图反映了刚打开输出流时APM的处理流程,另外AudioFlinger在混音的时候还会计算一次流(Track)的音量不过混音时设置的音量也是在APM设置完之后再进行设置的混音时设置的音量有个最大的特性就是实时性很强,即时生效!具体代码路径: MixerThread::prepareTracks_l()@ frameworks\\av\\services\\audioflinger\\Threads.cpp
checkDeviceMuteStrategies() 检查静音策略
收藏
0 条评论
回复 删除
下一页