Android 的音訊硬體抽象層 (HAL) 會將較高層級的音訊專屬架構 API 連結至 android.media
底層音訊驅動程式和硬體。Audio HAL 會定義音訊服務呼叫的標準介面。您必須實作音訊 HAL,音訊硬體才能正常運作。
本頁面概略說明 Audio HAL,並提供其 API 和實作規定的詳細資訊。
音訊 HAL 介面
自 Android 14 起,Audio HAL 介面會使用 AIDL 定義。在先前版本中,Audio HAL 介面會使用 HIDL 進行定義。我們建議合作夥伴和 SoC 供應商重新實作 Audio HAL,以提供 AIDL 介面。
針對 Android 14 以上版本新增的功能,新 HAL API 僅支援實作 AIDL 介面。自 Android 14 起,HIDL 實作中不會新增任何 API。
切換至 AIDL,並淘汰及移除對先前主要 Audio HAL 版本的支援,可釋出裝置上的磁碟空間和 RAM。這可帶來更流暢的使用者體驗,並為使用者提供更先進的功能。
如要進一步瞭解 AIDL 與 HIDL 音訊 HAL 之間的差異,請參閱 AIDL 和 HIDL 音訊 HAL 比較。
Audio HAL API
Audio HAL 包含下列 API:
- 核心 HAL 是 AudioFlinger 用來播放音訊及控制音訊轉送用途的主要 API。
效果架構會使用 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 緩衝區擷取),則實作方式必須支援此設定檔中對應於 Sound Trigger HAL 支援的並發工作階段數量的有效串流數量。
如「並行擷取」頁面所述,語音通話傳輸和擷取作業的並行處理。