首页 >> 大全

【Audio】配置文档(三)audio_policy_conf.xml

2023-10-18 大全 33 作者:考证青年

文章目录 4 问题小结5 参考文章

1 文件路径

code:\qcom\\audio-hal\-hal\\XXXX(平台)

设备://etc/.xml

2 文件内容


<mixPort name="primary input" role="sink"><profile name="" format="AUDIO_FORMAT_PCM_16_BIT"samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
mixPort>
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source"><profile name="" format="AUDIO_FORMAT_PCM_16_BIT"samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
devicePort>
<route type="mix" sink="primary input"sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In"/>

route连接和

代表着应用场景

代表着硬件

3 加载流程及使用 3.1 解析

参见文章:.xml 解析

在创建的时候会加载配置文件,参见思维导图。

最终.xml文件中的三大节点,, , route会分别存放

,,。

//1. mixer_port
Element mixPort = new IOProfile(String8(name.c_str()), portRole);//2. device_port
Element deviceDesc = new DeviceDescriptor(type, encodedFormats, String8(name.c_str()));//3. route 
Element route = new AudioRoute(routeType);

3.2 使用

文档配置管理工具_文档配置管理的六个活动_

创建的时候会执行set函数,然后将java层设置的三个参数(,,)设置下去,最终交给::处理,重点查看该函数。

3.2.1 获取

java层除了三大参数外,还传下来了,常用的有mic和

这个决定了选择什么样的,也就是xml文件中定义的信息。

这里的type为""很关键。

可以分为输入和输出设备,加载xml文件的时候都存储为。

然后再实际使用的时候会区分为和tor。

其实中的会存放,两者的最关键的联系是把type交给了。

可以查看::open函数。


<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address=""><profile name="" format="AUDIO_FORMAT_PCM_16_BIT"samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
devicePort><devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source"><profile name="" format="AUDIO_FORMAT_PCM_16_BIT"samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
devicePort>

//根据传入的source选择audio_device
audio_devices_t deviceType = getDeviceForInputSource(attr.source);

3.2.2 获取

:: --> :: --> ::

文档配置管理的六个活动__文档配置管理工具

在中可以看到传入的参数在这里选择了合适的(即xml中,下的)。

获取完合适的之后,会创建,将获取的作为入参传入,并打开。

::open最终会打开,执行到am。

3.2.3 小结 根据传入的,获取::根据传入的三大参数(,,),选择合适的创建,此时将作为入参传入将的三大参数存为打开,最终调用到am。

4 问题小结

1、 怎么选择 —— ok

::

根据传入的三大参数(,,),四种优先顺序,选择合适的

2、 和差异 —— ok

::open

其实中的会存放,两者的最关键的联系是把type交给了。

3、route如何关联两个port

::ces

5 参考文章

开发之音频配置文件.xml解析全过程

开发之音频配置文件.conf解析全过程

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了