当前位置:网站首页>audio_policy_configuration.xml配置文件详解
audio_policy_configuration.xml配置文件详解
2022-08-04 10:41:00 【步基】
audio_policy_configuration.xml中 的<modules>对应每一个audio hal 的so,module中列出的mixPorts,devicePorts和routes解析之后完整的描述了音频的路由规则。
module name: 支持“primary”(用于车载使用场景)、“A2DP”、“remote_submix”和“USB”。模块名称和相应音频驱动程序应编译到 audio.primary.$(variant).so 中。
devicePorts:包含可从此模块访问的所有输入和输出设备(包括永久连接的设备和可移除设备)的设备描述符列表。有实际的物理设备,在android中有定义的设备类型,比如AUDIO_DEVICE_OUT_SPEAKER、AUDIO_DEVICE_IN_HDMI、AUDIO_DEVICE_OUT_BLUETOOTH_A2DP等等
mixPorts:包含由音频 HAL 提供的所有输出流和输入流的列表,逻辑上的音频流。每个 mixPort 实例都可被视为传输到 Android AudioService 的物理音频流。
routes: 定义输入和输出设备之间或音频流和设备之间可能存在的连接的列表。
mixPorts和devicePorts的 区别
devicePort
mixPort为逻辑上的音频流,在xml里我们可以自定义逻辑音频流的名字,一般默认的primary_out流
<mixPort name="primary_out" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
从属与primary的module ,这个primary out的流作为一个route的source,也是要通过primary hal来达到这个目标的,这个route的描述如下
.......
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
......
......
<route type="mix" sink="Speaker"
sources="primary_out"/>
......
......
flag为AUDIO_OUTPUT_FLAG_PRIMARY的音频流“primary_out”将通过primary hal流向设备为AUDIO_DEVICE_OUT_SPEAKER的sink设备Speaker
边栏推荐
猜你喜欢

Jina 实例秀|七夕神器!比你更懂你女友的AI口红推荐

8月活动|51CTO十七周年庆,发博文得茶具/笔记本/T恤等礼品!

Digital management insight into retail and e-commerce operations - retail password

低代码是开发的未来吗?浅谈低代码开发平台的发展现状及未来趋势

Events in August | 51CTO's 17th Anniversary Celebration, post a blog post to get gifts such as tea sets/notebooks/T-shirts!

C language * Xiaobai's adventure

Graphical Hands-on Tutorial--ESP32 OTA Over-the-Air Upgrade (VSCODE+IDF)

MATLAB程序设计与应用 3.2 矩阵变换

超宽带UWB实时精准定位,短距离无缝交互应用,物联网厘米级精度方案

KubeDNS 和 CoreDNS
随机推荐
用匿名函数定义函数_c语言最先执行的函数是
[easyUI]修改datagrid表格中的值
航企纠缠A350安全问题 空客主动取消飞机订单
KubeDNS 和 CoreDNS
JUC (1) threads and processes, concurrency and parallelism, thread state, locks, producers and consumers
What is the terminal privilege management
Jina 实例秀|基于神经搜索的网络安全威胁检测(一)
常用的输入对象
cubemx stm32 afm3000 module gas flow sensor driver code
js文字转语音播报
EastWave应用:自动计算光子晶体透反率
MySQL之my.cnf配置文件
Use pytest hook function to realize automatic test result push enterprise WeChat
gom登录器配置教程_谷歌浏览器如何使用谷歌搜索引擎
The difference between Mysql application log time and system time is eight hours
粤黔协作,山海同心!578种贵州特色农产品走进粤港澳大湾区
Meishe Q&A Room | Meiying VS Meishe Cloud Editing
[代码阅读] CycleGAN: Unpaired Image-To-Image Translation Using Cycle-Consistent Adversarial Networks
【cookie 临时存储数据,WebStorage ,sessionStorage】
helm安装