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:
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:
Definisci la porta del mix dinamico in
usb_audio_policy_configuration.xml
.Dichiarare la possibilità di indirizzare i dispositivi USB a porte mix dinamiche configurazione dei criteri audio o nei metodi AIDL
getAudioPorts
egetAudioRoutes
.
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).