Dźwięk HAL

Warstwa abstrakcji sprzętu audio (HAL) systemu Android łączy interfejsy API wyższego poziomu specyficzne dla dźwięku z android.media , podstawowymi sterownikami audio i sprzętem. Audio HAL definiuje standardowy interfejs, do którego odwołują się usługi audio. Aby sprzęt audio działał poprawnie, należy zaimplementować warstwę audio HAL.

Na tej stronie znajduje się przegląd warstwy Audio HAL oraz szczegółowe informacje na temat jej interfejsu API i wymagań implementacyjnych.

Interfejs audio HAL

Począwszy od Androida 14, interfejs Audio HAL jest definiowany przy użyciu AIDL . W poprzednich wersjach interfejs Audio HAL jest definiowany przy użyciu języka HIDL . Zachęcamy partnerów i dostawców SoC do ponownego wdrożenia warstwy Audio HAL w celu zapewnienia interfejsu AIDL.

Nowe interfejsy API HAL dla funkcji dodanych w systemie Android 14 i nowszych są obsługiwane tylko w przypadku implementacji interfejsu AIDL. Począwszy od Androida 14, do implementacji HIDL nie jest dodawany żaden nowy interfejs API.

Przejście na AIDL oraz wycofanie i usunięcie obsługi poprzednich głównych wersji Audio HAL zwalnia miejsce na dysku i pamięć RAM na urządzeniach. Prowadzi to do płynniejszego UX i pozwala na udostępnienie nowszych funkcji widocznych dla użytkowników końcowych.

Zobacz porównanie AIDL i HIDL Audio HAL, aby uzyskać więcej informacji na temat różnic między AIDL i HIDL Audio HAL.

API HAL dźwięku

Audio HAL zawiera następujące interfejsy API:

  • Core HAL to główny interfejs API używany przez AudioFlinger do odtwarzania dźwięku i kontrolowania routingu audio.
  • Interfejs API Effects HAL jest używany przez platformę efektów do kontrolowania efektów dźwiękowych. Można także skonfigurować efekty przetwarzania wstępnego , takie jak automatyczna kontrola wzmocnienia i tłumienie szumów, poprzez interfejs API Effects HAL.

  • Common HAL API to biblioteka typowych typów danych używanych przez interfejsy API Core i Effects HAL. Common HAL nie ma interfejsów ani powiązanych testów VTS, ponieważ definiuje jedynie struktury danych.

Zobacz AIDL Audio HAL i HIDL Audio HAL , aby uzyskać szczegółowe informacje dotyczące odpowiednio AIDL i HIDL.

Wymagania

Oprócz wdrożenia warstwy Audio HAL i utworzenia pliku konfiguracyjnego zasad audio, należy przestrzegać następujących wymagań HAL:

  • Jeśli przechwytywanie dla Sound Trigger (przechwytywanie z bufora DSP słów kluczowych) jest obsługiwane przez jeden profil wejściowy, implementacja musi obsługiwać liczbę aktywnych strumieni w tym profilu odpowiadającą liczbie jednoczesnych sesji obsługiwanych przez HAL Sound Trigger.

  • Współbieżność wysyłania połączeń głosowych i przechwytywania z procesora aplikacji, jak opisano szczegółowo na stronie Równoczesne przechwytywanie .