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