Аудио ХАЛ

Уровень абстракции аудиооборудования (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.

  • Параллельная передача голосовых вызовов и захват с помощью процессора приложения подробно описаны на странице «Параллельный захват» .