Уровень абстракции аудиооборудования (HAL) Android соединяет высокоуровневые, аудиоспецифичные фреймворковые API в android.media
, базовые аудиодрайверы и оборудование. Audio HAL определяет стандартный интерфейс, к которому обращаются аудиосервисы. Audio HAL должен быть реализован для корректной работы аудиооборудования.
На этой странице представлен обзор Audio HAL и подробная информация о его API и требованиях к реализации.
Аудиоинтерфейс HAL
Начиная с Android 14, интерфейс Audio HAL определяется с помощью AIDL . Для предыдущих версий интерфейс Audio HAL определяется с помощью HIDL . Партнерам и поставщикам SoC рекомендуется повторно реализовать свой Audio HAL для предоставления интерфейса AIDL.
Новые API HAL для функций, добавленных в Android 14 и выше, поддерживаются только с реализацией интерфейса AIDL. Начиная с Android 14, в реализацию HIDL не добавляется никаких новых API.
Переход на AIDL и прекращение поддержки предыдущих основных версий Audio HAL освобождает дисковое пространство и оперативную память на устройствах. Это приводит к более плавному UX и позволяет использовать новые видимые пользователю функции для конечных пользователей.
Дополнительную информацию о различиях между AIDL и HIDL Audio HAL см. в разделе Сравнение AIDL и HIDL Audio HAL.
API аудио HAL
Audio HAL содержит следующие API:
- Core HAL — это основной API, используемый AudioFlinger для воспроизведения звука и управления маршрутизацией звука.
Effects HAL API используется фреймворком эффектов для управления аудиоэффектами. Вы также можете настроить эффекты предварительной обработки , такие как автоматическая регулировка усиления и подавление шума через Effects HAL API.
Common HAL API — это библиотека общих типов данных, используемых Core и Effects HAL API. Common HAL не имеет интерфейсов и связанных тестов VTS, поскольку определяет только структуры данных.
Подробную информацию об AIDL и HIDL см. в разделах AIDL Audio HAL и HIDL Audio HAL соответственно.
Требования
Помимо внедрения Audio HAL и создания файла конфигурации политики звука, необходимо соблюдать следующие требования HAL:
Если захват для Sound Trigger (захват из буфера DSP hotword) поддерживается одним входным профилем, реализация должна поддерживать количество активных потоков в этом профиле, соответствующее количеству одновременных сеансов, поддерживаемых Sound Trigger HAL.
Параллельная передача голосовых вызовов и захват с помощью процессора приложения подробно описаны на странице «Параллельный захват» .