AudioPolicyService是Android音频系统的两大服务之一,另一个服务是AudioFlinger,这两大服务都在系统启动时有 MediaSever加载,加载的代码位于:frameworks\base\media\mediaserver \main_mediaserver.cpp.AudioFlinger主要负责管理音频数据处理以及和硬件抽象层相关的工作.本文主要介绍 AudioPolicyService.AudioPolicyService           AudioPoli…
AudioPolicyService是策略的制定者,比如什么时候打开音频接口设备.某种Stream类型的音频对应什么设备等等.而AudioFlinger则是策略的执行者,例如具体如何与音频设备通信,如何维护现有系统中的音频设备,以及多个音频流的混音如何处理等等都得由它来完成.AudioPolicyService根据用户配置来指导AudioFlinger加载设备接口,起到路由功能. AudioPolicyService启动过程 AudioPolicyService服务运行在mediaserver进…
http://blog.csdn.net/kevinx_xu/article/details/12951131 需求:USB Headset插上去后,声音要从本地CODEC切换到USB Headset输出/输入. 上网搜了有关USB Audio Hotplug的东西,比较适用的资源如下: 1.Hotplugging USB audio devices (Howto) 题目看起来很吻合我们的问题,事实上并没有多少参考价值.其中脚本/etc/hotplug/usb/extigy或许可以捕捉到USB…
播放声音能够用MediaPlayer和AudioTrack,两者都提供了java API供应用开发人员使用.尽管都能够播放声音.但两者还是有非常大的差别的.当中最大的差别是MediaPlayer能够播放多种格式的声音文件.比如MP3.AAC,WAV,OGG.MIDI等. MediaPlayer会在framework层创建相应的音频解码器.而AudioTrack仅仅能播放已经解码的PCM流,假设是文件的话仅仅支持wav格式的音频文件,由于wav格式的音频文件大部分都是PCM流.AudioTrack…
地址:http://blog.csdn.net/edmond999/article/details/18599327 1.1 AudioPolicy Service 在AudioFlinger小节,我们反复强调它只是策略的执行者,而AudioPolicyService则是策略的制定者.这种分离方式有效地降低了整个系统的藕合性,而且为各个模块独立扩展功能提供了保障. 1.1.1 AudioPolicyService概述 汉语中有很多与策略有关联的俗语,比如“因地制宜”.“具体问题具体分析”;战争中…
每创建一个AudioTrack,代表需要新增一个输出实例,即需要根据音频流的的stream type,音频流的音轨数量,采样率,位宽等数据来重新构建buffer,而且输出的设备也可能会有变化,由于Android设备支持的输出设备各种各样,如线控耳机,喇叭,蓝牙耳机,midi设备等,因此如果该设备是第一次被使用时,则会被初始化. 下文描述的打开输出设置并非真正的打开linux设备文件,而是输出设备相关的初始化操作 getOutput流程 audio_io_handle_t AudioTrack::…
1 分析思路 Thread如何创建? AudioPolicyService是策略的制定者,AudioFlinger是策略的执行者, 所以: AudioPolicyService根据配置文件使唤AudioFlinger来创建Thread Thread对应output, output对应哪些设备节点? AudioTrack和Track的创建过程: AudioTrack对应哪一个Thread, 对应哪一个output? AudioTrack如何传输数据给Thread? AudioTrack如何播放.暂…
1.HIDL 的概念 HIDL 读作 hide-l,全称是 Hardware Interface Definition Language.它在 Android Project Treble 中被起草,在 Android 8.0 中被全面使用,其诞生目的是使 Android 可以在不重新编译 HAL 的情况下对 Framework 进行 OTA 升级.  使用 HIDL 描述的 HAL 描述文件替换旧的用头文件描述的 HAL 文件的过程称为 * HAL 的 binder 化(binderizati…
记录一下AudioPolicy初始化过程. frameworks\av\media\audioserver\audioserver.rc service audioserver /system/bin/audioserver class main user audioserver # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) group audio camera drmrpc inet media me…
1.AudioPolicyService基础 AudioPolicy在Android系统中主要负责Audio"策略"相关的问题.它和AudioFlinger一起组成了Android Audio系统的两个服务.一个负责管理audio的“路由”,一个负责管理audio“设备”.在Android M 版本的系统中,这两个服务都是在系统启动的过程中,通过MediaServer来加载的. AudioPolicyService在Android Audio系统中主要完成以下几个任务: ①管理输入输出…