Attributi del mixer preferiti sui dispositivi USB

Android 14 fornisce API per sviluppatori che le app possono usare per eseguire query e configurare gli attributi preferiti del mixer per i dispositivi USB la riproduzione audio. Questi attributi preferiti del mixer migliorare l'esperienza di riproduzione audio USB consentendo alle app di impostare il formato audio, maschera del canale, frequenza di campionamento e comportamento del mixer. Con l'utilizzo del metodo di pagamento API mixer su dispositivi USB supportati, gli utenti possono usufruire di una riproduzione audio a bassa latenza e contenuti audio a risoluzione più elevata.

Questa funzionalità fornisce anche il supporto per il mixer di riproduzione con bit perfetto per i dispositivi USB. La modalità bit-perfect consente la riproduzione per con qualità autenticata (MQA) e formati digitali in streaming diretto (DSD) convertitori digitali-analogici (DAC) compatibili.

Interfaccia

Gestione norme audio gestisce gli attributi del mixer nel framework. La AudioMixerAttributes rappresenta gli attributi del mixer. Il corso AudioMixerAttributes include un AudioFormat che descrive il formato dei dati audio, la maschera del canale e la frequenza di campionamento per il mixer. Per impostazione predefinita, il framework determina il comportamento del mixer, che combina tutte le sorgenti audio e applica il controllo del volume e gli effetti.

Se il comportamento del mixer utilizza la modalità BIT_PERFECT, il sistema invia l'audio contenuti senza modifiche tramite il framework audio, l'HAL e, facoltativamente, dall'API al dispositivo USB. La La modalità BIT_PERFECT supporta formati codificati, come MQA o DSD, in cui qualsiasi la scalabilità o il mix del volume possono distruggere il significato dei dati.

Quando le app configurano gli attributi del mixer, il framework riapre il flusso di output con nuovi attributi, se necessario. La figura seguente mostra l'interfaccia tra l'app, il framework e l'HAL quando sono impostati gli attributi del mixer:

attr-mixer-preferiti

Figura 1. Interfaccia tra app, framework e HAL.

Implementazione

Implementazione di attributi mixer preferiti, diversi da BIT_PERFECT , per l'audio USB è obbligatorio per Android 14.

Attributi preferiti del mixer

Per supportare gli attributi del mixer preferiti, i fornitori devono supportare i dispositivi USB di routing alla porta del mix dinamico, come segue:

  1. Definisci la porta del mix dinamico in usb_audio_policy_configuration.xml.

  2. Dichiarare la possibilità di indirizzare i dispositivi USB a porte mix dinamiche configurazione dei criteri audio o nei metodi AIDL getAudioPorts e getAudioRoutes.

di Gemini Advanced.

Consulta l'implementazione di riferimento per l'HAL audio USB in hardware/libhardware/modules/usbaudio. Guarda un esempio di porta mix dinamico in frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml.

Attributo di riproduzione con bit perfetto

L'attributo di riproduzione bit-perfect è facoltativo ed è supportato solo nel file AIDL implementazione di Audio HAL. Per supportare la riproduzione a bit perfetto, i fornitori devono: aggiungi il flag di output bit-perfect AUDIO_OUTPUT_FLAG_BIT_PERFECT alla configurazione dinamica porta mixer che può essere indirizzata al dispositivo USB.

Il seguente esempio di codice mostra l'utilizzo dell'elemento AUDIO_OUTPUT_FLAG_BIT_PERFECT Segnala in 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>

Se viene specificato l'attributo di riproduzione bit-perfect, l'HAL deve assicurarsi che l'attributo lo stream audio viene inviato al dispositivo USB senza alcuna modifica, ovvero lo stream audio non deve avere scalabilità del volume, conversione della frequenza di campionamento o audio e non devono essere mixati nel DSP. In questo caso, l'hardware controlla il volume poiché il framework non fornisce senza regolare il volume tramite software.

Convalida

Esegui i test CTS in PreferredMixerAttributesTestActivity.java per convalidare il supporto degli attributi del mixer preferiti per i dispositivi USB.

Per convalidare l'implementazione dell'attributo BIT_PERFECT, usa DAC USB che supporta i formati audio MQA e DSD su modulazione di codice a impulsi (PCM).