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、底层结构

相关推荐
DogDaoDao13 分钟前
H.266/VVC 双雄对决:VTM vs VVenC 深度对比分析
音视频·视频编解码·vvc·vtm·h.266·视频压缩·vvenc
无线视频解决方案4 小时前
HDMI直出vsMIPI转接对比:AM8360D为何能省2颗芯片
音视频·无线图传·炬力北方
ai产品老杨4 小时前
边云协同视频分析性能优化指南:多站点部署下的参数配置与排查清单(边缘推理+云端管理)
性能优化·音视频
程序员老陆6 小时前
OpenGL 在视频渲染里的角色:它到底加速了什么?
音视频·gpu·opengl
熊猫钓鱼>_>6 小时前
Seedance 2.0 技术深度解析:重构AI视频生成的世界模型新范式
人工智能·笔记·ai·重构·音视频·变革·sedence2.0
弈语道破AI7 小时前
3D渲染不再熬时间!即梦 Seedance 2.5 具备3D白模渲染功能的AI视频生成工具
人工智能·3d·音视频
AI创界者7 小时前
最新 ComfyUI + LTX-2.5 本地一键整合包:文生视频/图生视频/数字人全流程指南
人工智能·aigc·音视频
阿童木写作7 小时前
速卖通卖家图片翻译工具:批量图片翻译+视频字幕+智能抠图一站式搞定
大数据·人工智能·python·音视频
hans汉斯16 小时前
《软件工程与应用》期刊推荐&10月版面征稿中
图像处理·人工智能·深度学习·算法·音视频·软件工程
AI服务老曹19 小时前
AI视频分析API常见问题和排查清单
人工智能·音视频