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

相关推荐
waterHBO12 分钟前
ffmpeg 把一个视频复制3次
ffmpeg·音视频
美狐美颜sdk1 小时前
从API到UI:直播美颜SDK中的滤镜与贴纸功能开发与落地方案详解
人工智能·ui·音视频·美颜sdk·视频美颜sdk·美颜api
白熊1882 小时前
【图像大模型】ExVideo-SVD-128f:面向长视频生成的时空扩散模型深度解析
人工智能·音视频·通用智能体·web search
科技小E2 小时前
安防综合管理系统EasyCVR视频融合平台安防知识:门禁系统与视频监控系统如何联动?
网络·人工智能·音视频
Oliverro3 小时前
WebRTC技术EasyRTC嵌入式音视频通信SDK助力智能电视搭建沉浸式实时音视频交互
人工智能·音视频
gogoMark9 小时前
口播视频怎么剪!利用AI提高口播视频剪辑效率并增强”网感”
人工智能·音视频
白熊18812 小时前
【图像生成大模型】Wan2.1:下一代开源大规模视频生成模型
人工智能·计算机视觉·开源·文生图·音视频
Echo``13 小时前
3:OpenCV—视频播放
图像处理·人工智能·opencv·算法·机器学习·视觉检测·音视频
穿越光年19 小时前
MCP实战:在扣子空间用扣子工作流MCP,一句话生成儿童故事rap视频
人工智能·音视频
深圳市青牛科技实业有限公司 小芋圆19 小时前
CS4334:一款高性能的立体声音频数模转换器
科技·嵌入式硬件·音视频·智能家居·新能源·工控主板