Android音频框架总结

1、AudioFlinger:接收多个APP的数据,合并下发;是策略的执行者,例如具体如何与音频设备通信,如何维护现有系统中的音频设备,以及多个音频流的混音如何处理等等都得由它来完 成。

AudioFlinger主要包含3个主要的子模块:AudioHwDevice、PlaybackThread/RecordThread、PlaybackTrack/RecordTrack。(这里暂时不提音效子模块)

AudioHwDevice是一种抽象,并不是指扬声器、听筒、耳机这种真实的物理设备,而是指不同的Audio HAL module,比如primary module、a2dp module等,也可以理解成是音频框架层定义的一种虚拟设备。它与Audio HAL层的DeviceHal是对应的关系。

PlaybackThread/RecordThread是由AudioFlinger启动的负责音频数据传输的线程,播放和录制的核心流程都在这里面实现。它与Audio HAL层的StreamHal是对应的关系。

PlaybackTrack/RecordTrack对应的是API层的AudioTrack/RecordTrack,它相当于是服务端。

2、AudioPolicyService:决定选择哪个设备输出,接上耳机用耳机,接上蓝牙设备用蓝牙;是策略的制定者,比如什么时候打开音频接口设备、某种Stream类型的音频对应什么设备等等。

APS包含3个核心的子模块:AudioPolicyService、AudioPolicyManager和Engine。

Engine负责存储设备路由策略和音量大小配置;

AudioPolicyManager负责设备路由和音量控制的具体实现;

AudioPolicyService负责对外提供Binder接口和其它模块进行交互;

3、AudioTrack:一个代理,APP 通过AudioTrack(binder通信,分Java层和C++层) 来访问AudioFlinger。

4、底层结构

相关推荐
心愿许得无限大2 小时前
视频监控实现画面缩放功能
c++·windows·音视频
超级老虎漫步4 小时前
探索开源多模态视频生成模型:CogVideoX1.5-5B
人工智能·深度学习·机器学习·计算机视觉·开源·音视频
科技与数码4 小时前
七牛智能CDN视频优化方案,展现企业长期价值
音视频
AI原吾5 小时前
使用 Tkinter 创建一个简单的 GUI 应用程序来合并视频和音频文件
python·音视频
EasyDSS5 小时前
视频推拉流EasyDSS互联网直播点播平台技术特点及应用场景剖析
音视频·视频推流·视频推拉流
γ..5 小时前
【传知代码】VRT_ 关于视频修复的模型
人工智能·深度学习·神经网络·学习·机器学习·音视频
红米饭配南瓜汤14 小时前
Android显示系统(01)- 架构分析
android·音视频·媒体
余道各努力,千里自同风15 小时前
HTML5 视频 Vedio 标签详解
前端·音视频·html5
EasyDSS19 小时前
互联网视频推拉流EasyDSS视频直播点播平台视频转码有哪些技术特点和应用?
运维·服务器·音视频·rtmp推流·视频转码