赞
踩
AudioPolicyService 是策略的制定者,比如什么时候打开音频接口设备、某种 Stream 类型的音频对应什么设备等等。而 AudioFlinger 则是策略的执行者,例如具体如何与音频设备通信,如何维护现有系统中的音频设备,以及多个音频流的混音如何处理等等都得由它来完成。
AudioPolicyService 根据用户配置来指导 AudioFlinger 加载设备接口,起到路由功能。在 Android Audio 系统中主要完成以下几个任务:
1)管理输入输出设备,包括设备的连接、断开状态,设备的选择和切换等
2)管理系统的音频策略,比如通话时播放音乐、或者播放音乐时来电话的一系列处理
3)管理系统的音量
4)上层的一些音频参数也可以通过AudioPolicyService设置到底层去
AudioPolicyService 生命周期关联的三个函数, 构造函数 AudioPolicyService、onFirstRef 和初始化有关, 析构函数 ~AudioPolicyService 和销毁有关。
源码位置:/frameworks/av/services/audiopolicy/service/AudioPolicyService.cpp
- AudioPolicyService::AudioPolicyService()
- : BnAudioPolicyService(), // 定义在IAudioPolicyService.h中, 作为Binder调用的Bn端
- mAudioPolicyManager(NULL), //
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。