Аудио ХАЛ

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

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