Android 14 bietet Entwickler-APIs mit denen Apps bevorzugte Mixerattribute für USB abfragen und konfigurieren können Audiowiedergabe. Diese bevorzugten Mixerattribute die USB-Audiowiedergabe zu verbessern, indem Apps das Audioformat festlegen, Kanalmaske, Abtastrate und Mischverhalten. Unter Verwendung der bevorzugten Mischpult-APIs auf unterstützten USB-Geräten nutzen, können Nutzer die Audiowiedergabe mit geringerer Latenz nutzen. und Audioinhalten mit höherer Auflösung.
Diese Funktion unterstützt auch den optionalen bit-perfekten Wiedergabemixer. für USB-Geräte. Der Bit-perfect-Modus ermöglicht die Wiedergabe auf dem Master MQA und Direct Stream Digital (DSD) auf kompatible Digital-Analog-Konverter (DACs).
Benutzeroberfläche
Der Audiorichtlinien-Manager verarbeitet die Mixerattribute im Framework. Die
AudioMixerAttributes
-Klasse die Attribute des Mixers darstellt. Die Klasse AudioMixerAttributes
enthält ein
AudioFormat
Objekt, das das Audiodatenformat, die Kanalmaske und die Abtastrate für
den Mixer. Standardmäßig bestimmt das Framework das Mischerverhalten,
alle Audioquellen und wendet die Lautstärkeregelung und -effekte an.
Wenn das Mischerverhalten den BIT_PERFECT
-Modus verwendet, sendet das System
ohne Änderungen über das Audio-Framework, HAL und optional
von der API bis hin zum USB-Gerät. Die
Der Modus BIT_PERFECT
unterstützt codierte Formate wie MQA oder DSD, auf denen alle
Skalieren oder Mischen von Volumen kann die Bedeutung der Daten zerstören.
Wenn Apps Mixer-Attribute konfigurieren, öffnet das Framework den Ausgabestream noch einmal mit neuen Attributen. Die folgende Abbildung zeigt die Schnittstelle zwischen die App, das Framework und den HAL, wenn Mixer-Attribute festgelegt sind:
Abbildung 1: Schnittstelle zwischen App, Framework und HAL.
Implementierung
Implementierung bevorzugter Mixer-Attribute, außer BIT_PERFECT
ist für Android 14 für USB-Audio obligatorisch.
Bevorzugte Mixer-Attribute
Zur Unterstützung bevorzugter Mixerattribute müssen Anbieter das Routing von USB-Geräten unterstützen. an den dynamischen Mix an:
Definieren Sie den Port für die dynamische Kombination in
usb_audio_policy_configuration.xml
.Legen Sie fest, dass USB-Geräte an dynamische Mischports weitergeleitet werden können – entweder in Konfiguration der Audiorichtlinie oder in den AIDL-Methoden
getAudioPorts
undgetAudioRoutes
.
Die Implementierung für den USB-Audio-HAL unter hardware/libhardware/modules/usbaudio
findest du in der Referenzimplementierung.
Ein Beispiel für einen dynamischen Mix finden Sie in frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml
.
Bit-perfektes Wiedergabeattribut
Das Attribut „Bit-perfekte Wiedergabe“ ist optional und wird nur in der AIDL unterstützt
Implementierung des Audio-HAL. Um eine Bit-perfekte Wiedergabe zu unterstützen, müssen Anbieter
fügen Sie das Bit-perfect-Ausgabe-Flag AUDIO_OUTPUT_FLAG_BIT_PERFECT
an den USB-Anschluss angeschlossen.
Im folgenden Codebeispiel wird die Verwendung von AUDIO_OUTPUT_FLAG_BIT_PERFECT
veranschaulicht:
Flag 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>
Wenn das Attribut „Bit-perfekte Wiedergabe“ angegeben ist, muss der HAL sicherstellen, dass die wird der Audiostream unverändert an das USB-Gerät gesendet, Der Audiostream darf keine Lautstärkeskalierung, Abtastratenkonvertierung oder Audio enthalten Verarbeitungseffekte und dürfen in der DSP nicht gemischt werden. In diesem Fall steuert die Hardware die Lautstärke, da das Framework keine per Software-Lautstärkeregelung.
Zertifizierungsstufe
Führen Sie die CTS-Tests in
PreferredMixerAttributesTestActivity.java
um die Unterstützung bevorzugter Mixerattribute für USB-Geräte zu validieren.
Verwenden Sie USB-DACs, die die Implementierung des Attributs BIT_PERFECT
prüfen.
unterstützen die Audioformate MQA und DSD über Pulscodemodulation (PCM).