USB 裝置上的偏好的混合器屬性

Android 14 提供開發人員 API 讓應用程式用於查詢及設定 USB 偏好的 Mixer 屬性 音訊播放。這些偏好的混合器屬性 允許應用程式設定音訊格式,進而改善 USB 音訊播放體驗。 頻道遮罩、取樣率和混音器行為。使用偏好的 在支援的 USB 裝置上搭配混音 API,使用者可以享受更短的聆聽體驗 和解析度較高的音訊內容

這項功能也支援選擇性精良的播放混音器 以及 USB 裝置的行為完美模式可讓主投影片播放功能 通過品質驗證 (MQA) 和直接串流數位 (DSD) 格式的 。

介面

音訊政策管理工具會處理架構中的混合器屬性。 AudioMixerAttributes敬上 代表混合器的屬性。AudioMixerAttributes 類別包含 AudioFormat 物件,其說明音訊資料格式、聲道遮罩和取樣率 攪拌機根據預設,架構會決定混合器行為,混合器行為 所有音訊來源,並套用音量控制及效果。

如果混合器行為使用 BIT_PERFECT 模式,系統會傳送音訊 不經修改音訊架構、HAL 以及選擇性的 數位訊號處理器 (DSP),從 API 到 USB 裝置。 BIT_PERFECT 模式支援 MQA 或 DSD 等編碼格式,其中任何 擴充或混合數量可能會破壞資料的意義。

應用程式設定 Mixer 屬性時,架構會重新開啟輸出串流 並包含新的屬性下圖顯示 應用程式、架構和 HAL (前提是已設定 Mixer 屬性):

首選混合型客機

圖 1. 應用程式、架構和 HAL 之間的介面。

實作

導入偏好的混合器屬性 (BIT_PERFECT 除外) 屬性,如果是 Android 14,則 USB 音訊為必要屬性。

偏好的混合器屬性

如要支援偏好的 Mixer 屬性,供應商必須支援 USB 裝置轉送功能 複製到動態組合連接埠中,如下所示:

  1. usb_audio_policy_configuration.xml 中定義動態組合通訊埠。

  2. 宣告將 USB 裝置轉送至動態混合連接埠的功能 音訊政策設定 或在 getAudioPortsgetAudioRoutes AIDL 方法中查詢。

,瞭解如何調查及移除這項存取權。

請參閱 hardware/libhardware/modules/usbaudio 下方的 USB 音訊 HAL 參考實作參考資料。 查看 frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml 中的動態組合通訊埠範例。

位元完美播放屬性

位元完美的播放屬性為選用項目,且只適用於 AIDL 實作音訊 HAL如要支援完美播放功能,廠商必須 將 位元完美輸出標記 AUDIO_OUTPUT_FLAG_BIT_PERFECT 加入 Dynamic 以及可轉送到 USB 裝置的連接埠

下列程式碼範例顯示 AUDIO_OUTPUT_FLAG_BIT_PERFECT usb_audio_policy_configuration.xml 中的旗標:

<module name="usb" halVersion="2.0">
    <mixPorts>
        <mixPort name="hifi_output"
                 role="source" flags="AUDIO_OUTPUT_FLAG_BIT_PERFECT">
        </mixPort>
    </mixPorts>
    <devicePorts>
        <devicePort tagName="USB Device Out"
                    type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
        </devicePort>
    </devicePorts>
    <routes>
        <route type="mix" sink="USB Device Out"
               sources="hifi_output"/>
    </routes>
</module>

如果指定了完美的播放屬性,HAL 必須確保 音訊串流傳送到 USB 裝置,未經任何修改, 音訊串流不得含有任何音量調整、取樣率轉換或音訊 且不得在需求端平台中混用。 在此例中,硬體控制音量,因為架構未提供 控制任何軟體音量

驗證

執行 CTS 測試: PreferredMixerAttributesTestActivity.java敬上 驗證是否支援 USB 裝置的偏好的混合器屬性。

如要驗證 BIT_PERFECT 屬性的實作結果,請使用會 透過脈衝程式碼調變 (PCM) 音訊格式,支援 MQA 和 DSD。