音訊 HAL

Android 的音訊硬體抽象層 (HAL) 會將高階的音訊專用架構 API 連接至android.media底層音訊驅動程式和硬體。音訊 HAL 定義了音訊服務呼叫的標準介面。必須實作 Audio HAL,音訊硬體才能正常運作。

本頁面概略說明 Audio HAL,並提供 API 和實作需求的詳細資料。

音訊 HAL 介面

自 Android 14 起,音訊 HAL 介面會使用 AIDL 定義。在舊版中,音訊 HAL 介面是使用 HIDL 定義。建議合作夥伴和 SoC 供應商重新實作 Audio HAL,以提供 AIDL 介面。

Android 14 以上版本新增的功能,支援透過實作 AIDL 介面使用新的 HAL API。自 Android 14 起,HIDL 實作不會新增任何 API。

改用 AIDL,並淘汰及移除先前主要 Audio HAL 版本的支援,可釋出裝置上的磁碟空間和 RAM。這可帶來更流暢的使用者體驗,並為使用者提供更新的使用者可見功能。

如要進一步瞭解 AIDL 和 HIDL Audio HAL 的差異,請參閱「AIDL 和 HIDL Audio HAL 比較」。

Audio 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 和 HIDL 的具體細節,請參閱 AIDL 音訊 HALHIDL 音訊 HAL

需求條件

除了實作 Audio HAL 和建立音訊政策設定檔,您也必須遵守下列 HAL 規定:

  • 如果某個輸入設定檔支援「聲音觸發」的擷取功能 (從熱字 DSP 緩衝區擷取),實作項目就必須支援該設定檔上的有效串流數量,這會對應至「聲音觸發」HAL 支援的並行工作階段數量。

  • 應用程式處理器同時傳輸及擷取語音通話的詳細資料,請參閱「並行擷取」頁面。