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部分,将他认为是一个进程空间内的调用。
这样便于我们分析。
相对于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部分,将他认为是一个进程空间内的调用。
这样便于我们分析。
相关文章推荐
- android audio 音量设置分析
- android 三级菜单 BaseExpandableListAdapter
- Android Support V4, V7, V13的作用与用法
- Ubuntu的Android开发环境配置
- {Android} 测试Google Play In-App-Billing支付
- Android Studio快捷键指南(本文持续更新)
- Android Studio快捷键指南(本文持续更新)
- Android Studio快捷键指南(本文持续更新)
- Android Studio快捷键指南(本文持续更新)
- android xmpp
- Android通过JNI操作串口
- Android 性能测试_Monkey 实践【转】
- Android Monkey 测试策略【转】
- Android&java的成长之路之四(自定义字母索引)
- Android项目使用support v7时遇到的各种问题
- Android Widget学习笔记
- android 5.1预置apk
- Android 启动Activity的方式
- Android的通讯员——notification
- Android笔记---TableLayout表格布局