Аудио ХАЛ

Уровень абстракции аппаратного обеспечения аудио (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 освобождает дисковое пространство и оперативную память на устройствах. Это приводит к более плавному пользовательскому интерфейсу и позволяет конечным пользователям использовать новые функции, видимые пользователем.

См. сравнение AIDL и HIDL Audio HAL для получения дополнительной информации о различиях между AIDL и HIDL Audio HAL.

Аудио HAL API

Audio HAL содержит следующие API:

  • Core HAL — это основной API, используемый AudioFlinger для воспроизведения звука и управления маршрутизацией звука.
  • API-интерфейс Effects HAL используется платформой эффектов для управления звуковыми эффектами. Вы также можете настроить эффекты предварительной обработки , такие как автоматическая регулировка усиления и подавление шума, через API эффектов HAL.

  • Common HAL API — это библиотека общих типов данных, используемых API-интерфейсами HAL Core и Effects. Common HAL не имеет интерфейсов и связанных с ним тестов VTS, поскольку определяет только структуры данных.

См. AIDL Audio HAL и HIDL Audio HAL для получения подробной информации, связанной с AIDL и HIDL соответственно.

Требования

Помимо реализации Audio HAL и создания файла конфигурации политики аудио, вы должны соблюдать следующие требования HAL:

  • Если захват для Sound Trigger (захват из буфера DSP горячего слова) поддерживается одним входным профилем, реализация должна поддерживать количество активных потоков в этом профиле, соответствующее количеству одновременных сеансов, поддерживаемых Sound Trigger HAL.

  • Одновременная передача голосового вызова и захват данных от процессора приложения, как подробно описано на странице «Одновременный захват» .