AudioPolicyService简介
AudioPolicyService是android audio system中两大服务之一,另外一个是AudioFlinger。
主要的功能:
1. 检测和设置输入输出设备的连接状态
2. 音频系统的切换策略抉择
3. 音量和音频系统参数的设置
4. 音效的设置
AudioPolicyService的相关代码
frameworks/av/services/audioflinger/AudioPolicyService.cpphardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
hardware/libhardware_legacy/audio/audio_policy_hal.cpp
hardware/libhardware_legacy/audio/AudioPolicyCompatClient.cpp
AudioPolicyService启动
AudioPolicyService是个Service,其启动是在mediaserver中启动的frameworks/av/media/mediaserver/main_mediaserver.cpp
AudioPolicyService::instantiate();
AudioPolicyService和AudioPolicyManager结构关系
AudioPolicyService中的具体实现实际都是AudioPolicyManager完成的AudioPolicyService连接AudioPolicyManager
AudioPolicyService中:
struct audio_policy *mpAudioPolicy; 对应的是struct audio_policy policy;(audio_policy_hal.cpp)
audio_policy_hal.cpp中:
audio_policy中所有的Methods最后调用AudioPolicyManager中的方法