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