数据成员
AudioPolicyService:service 结构
AudioPolicyManager:manager结构
AudioPolicyClient(继承AudioPolicyClientInterface):为APM提供service调用接口
EngineInstance:Audio Policy Engine Interface,管理设备选择策略和音量配置等
关键函数
初始化流程
1. AudioPolicyService::onFirstRef
{
{
/* 创建两个audio commad线程 */
// start audio commands thread
mAudioCommandThread = new AudioCommandThread(String8("ApmAudio"), this);
// start output activity command thread
mOutputCommandThread = new AudioCommandThread(String8("ApmOutput"), this);
/* 创建APM实例 */
mAudioPolicyClient = new AudioPolicyClient(this);
mAudioPolicyManager = createAudioPolicyManager(mAudioPolicyClient);
}
/* 加载audio effect xml配置 */
// load audio processing modules
sp<AudioPolicyEffects> audioPolicyEffects = new AudioPolicyEffects();
……
}
2. AudioPolicyManager::loadConfig
createAudioPolicyManager函数,创建AudioPolicyManager实例时调用
用于解析audio_policy_configuration.xml文件
| mHwModulesAll |
所有audio hw module |
| mOutputDevicesAll/mInputDevicesAll |
xml配置的所有连接输出/输入设备,xml中attachedDevices提取 |
| mAvailableOutputDevices mAvailableInputDevices |
可用的输出/输入设备 |
| mDefaultOutputDevice |
默认输出设备,xml中defaultOutputDevice提取 |
| mOutputProfiles/mInputProfiles |
音频IO配置,xml中defaultOutputDevice提取mixPort |
| mDeclaredDevices |
音频设备端口,xml中defaultOutputDevice提取devicePort |
| mRoutes |
音频路 |

&spm=1001.2101.3001.5002&articleId=139177193&d=1&t=3&u=d12d131ed17d43e5a55b55fdc52b5009)
1773

被折叠的 条评论
为什么被折叠?



