Warstwę abstrakcji sprzętu audio (HAL) Androida łączy interfejsy API frameworku dotyczące dźwięku o wyższym poziomie z android.media
podstawowymi sterownikami dźwięku i sprzętem. Interfejs Audio HAL definiuje standardowy interfejs, do którego wywołują usługi audio. Aby sprzęt audio działał prawidłowo, musisz zaimplementować interfejs Audio HAL.
Na tej stronie znajdziesz omówienie interfejsu Audio HAL oraz szczegółowe informacje o wymaganiach dotyczących interfejsu API i wdrażania.
Interfejs HAL dźwięku
Począwszy od Androida 14 interfejs Audio HAL jest definiowany za pomocą AIDL. W poprzednich wersjach interfejs Audio HAL jest definiowany za pomocą HIDL. Partnerów i dostawców układów SoC zachęcamy do ponownego zaimplementowania interfejsu Audio HAL, aby udostępnić interfejs AIDL.
Nowe interfejsy HAL do obsługi funkcji dodanych w Androidzie 14 i wyższych są obsługiwane tylko w przypadku implementacji interfejsu AIDL. Od Androida 14 w implementacji HIDL nie są dodawane żadne nowe interfejsy API.
Przejście na interfejs AIDL oraz wycofanie i usunięcie obsługi poprzednich głównych wersji interfejsu Audio HAL powoduje zwolnienie miejsca na dysku i pamięci RAM na urządzeniach. Spowoduje to płynniejsze działanie interfejsu i umożliwi dodanie nowych funkcji widocznych dla użytkowników.
Aby dowiedzieć się więcej o różnicach między interfejsem HAL Audio AIDL a interfejsem HAL Audio HIDL, zapoznaj się z artykułem Porównanie interfejsu HAL Audio AIDL i HIDL.
Interfejs API HAL dźwięku
Interfejs Audio HAL zawiera te interfejsy API:
- Core HAL to główny interfejs API używany przez AudioFlinger do odtwarzania dźwięku i sterowania kierowaniem dźwięku.
Interfejs Effects HAL API jest używany przez framework efektów do sterowania efektami dźwiękowymi. Możesz też skonfigurować efekty wstępnej obróbki, takie jak automatyczna kontrola wzmocnienia i redukcja szumów, za pomocą interfejsu API Effects HAL.
Interfejs Common HAL API to biblioteka typów danych używanych przez interfejsy HAL API Core i Effects HAL API. Wspólny interfejs HAL nie ma interfejsów ani powiązanych testów VTS, ponieważ definiuje tylko struktury danych.
Szczegółowe informacje dotyczące odpowiednio AIDL i HIDL znajdziesz w warstwie HAL języka AIDL na potrzeby obsługi dźwięku oraz warstwie HAL języka HIDL na potrzeby obsługi dźwięku.
Wymagania
Oprócz implementowania interfejsu HAL Audio i tworzenia pliku konfiguracji zasad dotyczących audio musisz też przestrzegać tych wymagań dotyczących interfejsu 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 na tym profilu odpowiadającą liczbie jednoczesnych sesji obsługiwanych przez interfejs Sound Trigger HAL.
Równoczesne przesyłanie i przechwytywanie połączeń głosowych przez procesor aplikacji, jak opisano na stronie Równoczesne przechwytywanie.