Warstwa abstrakcji sprzętowej (HAL) Androida łączy interfejsy API wyższego poziomu, które są specyficzne dla dźwięku, w android.media z podstawowymi 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
W Androidzie 14 i nowszych wersjach interfejs Audio HAL jest zdefiniowany 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. W Androidzie 14 i nowszych do implementacji HIDL nie dodano żadnego nowego interfejsu API.
Przejście na AIDL oraz wycofanie i usunięcie obsługi poprzednich głównych wersji HAL audio 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 regulacja wzmocnienia i eliminowanie szumu, 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 artykułach AIDL Audio HAL i HIDL Audio HAL.
Wymagania
Oprócz wdrożenia HAL audio i utworzenia pliku konfiguracji 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.