您的位置:首页 > 移动开发 > Android开发

android audio分析

2016-02-20 19:57 507 查看
从本小节开始,我们要分析android的audio部分。

相对于surfaceflinger部分,audio简单许多,层次,模块明确许多。

为了防止摊子铺的太大,我们把audio分成几个模块来讲解。尽量分清楚模块之间的耦合

我们主要分成以下几部分:

AudioTrack, AudioFlinger,AudioMixer, AudioHAL, Audio Buffer, AudioPolicy

首先,上一张Audio的框架图





android 中的音频结构里,分工明确:

AudioTrack (AT) 负责管理音频来源,生成PCM数据

AudioFlinger (AF) 负责管理数据写入硬件以及多路数据mixer,

AudioPolicy (AP) 负责管理音频数据通路的选取以及音频设备的配置

android Audio 服务中,最核心的是AudioFlinger,以及AudioPolicy.

AudioPolicyService是audio操作方式方法策略的制定者,比如什么时候打开音频接口设备、某种Stream类型的音频对应什么设备等等。

而AudioFlinger则是具体的执行者,例如具体如何与音频设备通信,如何维护现有系统中的音频设备,以及多个音频流的混音如何处理等等都得由它来完成。

audio Mixer是混音操作的具体执行者

Audio HAL则是AudioFlinger对硬件操作的具体接口。

这里面,AT,AF,AP是三大服务,通过binder方式互相调用。为了防止摊子铺的太大,我们忽略binder部分,将他认为是一个进程空间内的调用。

这样便于我们分析。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: