Interfejs HAL dźwięku

Warstwa abstrakcji sprzętu audio (HAL) Androida łączy interfejsy API wyższego poziomu, które są specyficzne dla dźwięku, z android.media sterownikami i sprzętem audio. Warstwa HAL audio definiuje standardowy interfejs, do którego wywołują usługi audio. Aby sprzęt audio działał prawidłowo, musi być zaimplementowana warstwa HAL audio.

Na tej stronie znajdziesz omówienie warstwy HAL audio oraz szczegółowe informacje o jej interfejsie API i wymaganiach dotyczących implementacji.

Interfejs HAL audio

Od Androida 14 interfejs HAL audio jest definiowany za pomocą AIDL. W przypadku starszych wersji interfejs HAL audio jest zdefiniowany za pomocą HIDL. Zachęcamy partnerów i dostawców SoC do ponownego wdrożenia warstwy HAL audio, aby zapewnić interfejs AIDL.

Nowe interfejsy API HAL dla funkcji dodanych w Androidzie 14 i nowszych są obsługiwane tylko w przypadku implementacji interfejsu AIDL. Od Androida 14 do implementacji HIDL nie są dodawane żadne nowe interfejsy 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. Zapewnia to płynniejsze działanie i umożliwia udostępnianie użytkownikom nowych funkcji.

Więcej informacji o różnicach między AIDL a HIDL Audio HAL znajdziesz w artykule Porównanie AIDL i HIDL Audio HAL.

Audio HAL API

Warstwa HAL audio zawiera te interfejsy API:

  • Core HAL to główny interfejs API używany przez AudioFlinger do odtwarzania dźwięku i sterowania routingiem audio.
  • Interfejs API HAL efektów jest używany przez platformę efektów do sterowania efektami dźwiękowymi. Możesz też skonfigurować efekty przetwarzania wstępnego, takie jak automatyczna kontrola wzmocnienia i tłumienie szumów, za pomocą interfejsu API HAL efektów.

  • Interfejs Common HAL API to biblioteka typów danych wspólnych używanych przez interfejsy Core i Effects HAL API. Wspólna warstwa HAL nie ma interfejsów ani powiązanych testów VTS, ponieważ definiuje tylko struktury danych.

Szczegółowe informacje o AIDL i HIDL znajdziesz w sekcjach AIDL Audio HALHIDL Audio HAL.

Wymagania

Oprócz wdrożenia HAL audio i utworzenia pliku konfiguracyjnego zasad audio musisz spełnić te wymagania HAL:

  • Jeśli przechwytywanie dla wyzwalacza dźwięku (przechwytywanie z bufora DSP słowa aktywującego) jest obsługiwane przez jeden profil wejściowy, implementacja musi obsługiwać liczbę aktywnych strumieni w tym profilu odpowiadającą liczbie równoczesnych sesji obsługiwanych przez HAL wyzwalacza dźwięku.

  • Równoczesne przesyłanie i nagrywanie połączeń głosowych przez procesor aplikacji, jak opisano na stronie Równoczesne nagrywanie.