Android 的音訊硬體抽象層 (HAL) 將更高層級的音訊特定框架 API 連接到android.media
底層音訊驅動程式和硬體。音訊 HAL 定義了音訊服務呼叫的標準介面。必須實現音訊 HAL 才能使音訊硬體正常運作。
本頁概述了音訊 HAL,並提供了其 API 和實作要求的詳細資訊。
音頻HAL接口
從 Android 14 開始,音訊 HAL 介面是使用AIDL定義的。對於過去的版本,音訊 HAL 介面是使用HIDL定義的。我們鼓勵合作夥伴和 SoC 供應商重新實現其音訊 HAL 以提供 AIDL 介面。
僅透過實作 AIDL 介面才支援 Android 14 及更高版本中新增的功能的新 HAL API。從 Android 14 開始,HIDL 實作中不再新增新的 API。
切換到 AIDL 並棄用和刪除對先前主要音訊 HAL 版本的支援可以釋放裝置上的磁碟空間和 RAM。這會帶來更流暢的用戶體驗,並為最終用戶提供更新的用戶可見功能。
有關AIDL 和 HIDL Audio HAL 之間差異的更多信息,請參閱 AIDL 和 HIDL Audio HAL 比較。
音訊 HAL API
音訊 HAL 包含以下 API:
- Core HAL 是 AudioFlinger 用來播放音訊和控制音訊路由的主要 API。
效果框架使用 Effects HAL API 來控制音訊效果。您也可以透過 Effects HAL API 設定自動增益控制和雜訊抑制等預處理效果。
Common HAL API 是 Core 和 Effects HAL API 使用的常見資料類型庫。 Common HAL 沒有接口,也沒有關聯的 VTS 測試,因為它只定義資料結構。
請參閱AIDL Audio HAL和HIDL Audio HAL分別以了解與 AIDL 和 HIDL 相關的具體細節。
要求
除了實現音訊 HAL 和建立音訊策略設定檔之外,您還必須遵守以下 HAL 要求:
如果一個輸入設定檔支援聲音觸發擷取(從啟動字詞 DSP 緩衝區擷取),則實作必須支援該設定檔上的活動流程數量,該數量與聲音觸發 HAL 支援的並發會話數量相對應。
語音呼叫 TX 和應用程式處理器捕獲的並發性,如並發捕獲頁面上的詳細資訊。