Android 14 udostępnia interfejsy API dla programistów których aplikacje mogą używać do wysyłania zapytań i konfigurowania preferowanych atrybutów miksera dla USB do odtwarzania dźwięku. Te preferowane atrybuty miksera poprawić jakość odtwarzania dźwięku przez USB, umożliwiając aplikacjom ustawianie formatu audio, maski kanału, częstotliwość próbkowania i działanie miksera. Za pomocą preferowanego interfejsów API miksera na obsługiwanych urządzeniach USB, użytkownicy mogą odtwarzać dźwięk z mniejszym opóźnieniem i treści audio w wyższej rozdzielczości.
Funkcja ta zapewnia również obsługę opcjonalnego miksera odtwarzania z idealną jakością bitów. w przypadku urządzeń USB. Tryb bitu perfekcyjnego umożliwia odtwarzanie mastera formaty cyfrowe z uwierzytelnianiem (MQA) i bezpośrednim strumieniem (DSD), kompatybilnych przetworników cyfrowych na analogowych (DAC).
Interfejs
Menedżer zasad dotyczących audio obsługuje atrybuty miksera w ramach platformy.
AudioMixerAttributes
reprezentuje atrybuty miksera. Klasa AudioMixerAttributes
zawiera element
AudioFormat
.
obiekt opisujący format danych audio, maskę kanału i częstotliwość próbkowania
miksera. Domyślnie platforma określa działanie miksera,
wszystkich źródeł dźwięku oraz reguluje głośność i efekty.
Jeśli mikser używa trybu BIT_PERFECT
, system wysyła dźwięk.
treści bez modyfikacji za pomocą struktury audio, HAL oraz opcjonalnie
procesora sygnału cyfrowego (DSP) – od interfejsu API po urządzenie USB.
Tryb BIT_PERFECT
obsługuje formaty zakodowane, takie jak MQA lub DSD, w których każdy
skalowanie lub miksowanie woluminów może zniszczyć znaczenie danych.
Gdy aplikacje konfigurują atrybuty miksera, platforma ponownie otwiera strumień wyjściowy z nowymi atrybutami, jeśli zajdzie taka potrzeba. Poniższy rysunek przedstawia interfejs między funkcją aplikacji, platformy i kodu HAL, gdy ustawione są atrybuty miksera:
Rysunek 1. Interfejs między aplikacją, platformą i HAL.
Implementacja
Implementacja preferowanych atrybutów miksera innych niż BIT_PERFECT
atrybut audio USB jest wymagany w Androidzie 14.
Preferowane atrybuty miksera
Aby obsługiwać atrybuty preferowanych mikserów, dostawcy muszą obsługiwać kierowanie urządzeń USB do portu miksu dynamicznego w następujący sposób:
Określ port miksu dynamicznego w
usb_audio_policy_configuration.xml
.Zadeklaruj możliwość kierowania urządzeń USB do portów miksu dynamicznego konfiguracja zasad audio lub w metodach AIDL
getAudioPorts
igetAudioRoutes
.
Zapoznaj się z implementacją referencyjną dotyczącą interfejsu HAL USB audio w dokumencie hardware/libhardware/modules/usbaudio
.
Zobacz przykład portu miksu dynamicznego w elemencie frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml
.
Atrybut odtwarzania Bit-Perfefect
Atrybut odtwarzania bez perfekcji jest opcjonalny i jest obsługiwany tylko w AIDL
implementacji kodu HAL audio. Aby zapewnić perfekcyjne odtwarzanie bitów, dostawcy muszą
dodaj flagę danych wyjściowych AUDIO_OUTPUT_FLAG_BIT_PERFECT
do kreacji dynamicznej
miksu, który można przekierować do urządzenia USB.
Poniższa próbka kodu pokazuje, jak korzystać z interfejsu AUDIO_OUTPUT_FLAG_BIT_PERFECT
flaga w 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>
Jeśli określono atrybut odtwarzania z doskonałością jakości, HAL musi zagwarantować, że tag strumienia audio jest wysyłany na urządzenie USB bez żadnych modyfikacji, czyli strumień audio nie może mieć skalowania głośności, konwersji częstotliwości próbkowania ani dźwięku. i nie wolno mieszać ich na platformie DSP. W takim przypadku to urządzenie steruje głośnością, ponieważ platforma nie udostępnia jakąkolwiek regulację głośności.
Weryfikacja
Uruchom testy CTS w
PreferredMixerAttributesTestActivity.java
aby sprawdzić obsługę preferowanych atrybutów miksera dla urządzeń USB.
Aby sprawdzić poprawność implementacji atrybutu BIT_PERFECT
, użyj kontrolerów DAC USB, które:
obsługują formaty audio MQA i DSD z użyciem formatów audio z modulacją kodem pulsacyjnym (PCM).