Warstwa abstrakcji sprzętowej audio (HAL) Androida łączy interfejsy API platformy wyższego poziomu, które są specyficzne dla dźwięku, w android.media z bazowymi 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 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 jego routingiem.
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 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 dotyczące 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 za pomocą wyzwalacza dźwięku (przechwytywanie z bufora DSP słowa kluczowego) 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.