• audio_policy_configuration.xml配置文件详解


    audio_policy_configuration.xml中 的对应每一个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流

           
                                                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                       

    从属与primary的module ,这个primary out的流作为一个route的source,也是要通过primary hal来达到这个目标的,这个route的描述如下

        .......
       
                                                             samplingRates="48000"
                                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
        ......
        ......
         
                                    sources="primary_out"/>
        ......
        ......

    flag为AUDIO_OUTPUT_FLAG_PRIMARY的音频流“primary_out”将通过primary hal流向设备为AUDIO_DEVICE_OUT_SPEAKER的sink设备Speaker

     

  • 相关阅读:
    cloudera manager - Error while committing the transaction
    Zero-Copy零拷贝
    【微服务】安装docker以及可视化界面
    处理ElementUI组件默认样式多次重复问题
    十年后回头看,2026 年或许是程序员行业的转折点
    WPS的excel表格设置了编辑权限,要怎么取消?
    蓝牙耳机哪个牌子性价比高?千元内真无线耳机推荐
    GBase8s分片表操作实践
    基于go语言gin框架的web项目骨架
    错题集(c语言)
  • 原文地址:https://blog.csdn.net/wangbuji/article/details/126137623