藍牙低功耗音訊 (LEA) 技術可確保使用者接收高傳真音訊時不會耗費大量電力,同時也能在不同用途間流暢切換。Android 13 (API 級別 33) 內建支援 LEA。
在 LEA 來源裝置市占率成長前,大多數 LEA 耳機都會是雙模式。使用者應能在雙模耳機上配對及設定兩種傳輸方式。
用途
您可能想在下列情況整合 LEA:
分享音訊:使用者可以同時將多個音訊串流分享至一或多個音訊接收器裝置。來源裝置和已連結裝置會同步播放音訊。
播放音訊:使用者可以播放音訊給親友聽,也可以連線至資訊、娛樂或無障礙用途的公共廣播內容。
支援 LC3 音訊轉碼器:這是預設音訊轉碼器,會取代用於 A2DP (媒體) 的 SBC 轉碼器,以及用於 HFP (語音) 的 mSBC。LC3 的效率更高、可重新設定,音質也更優異。
改善音訊取樣:使用麥克風時,耳機可維持高音質輸出。使用藍牙麥克風時,傳統藍牙會降低音質。使用 BLE 音訊時,輸入和輸出取樣率可達 32 kHz。
立體聲麥克風:耳機可透過立體聲麥克風錄音,提升空間音訊效果。
支援助聽器設定檔 (HAP):與先前的 ASHA 通訊協定相比,HAP 可為使用者提供更完善的無障礙功能和使用體驗。使用者可以透過助聽器接聽電話和使用 VoIP 應用程式。
支援增強型屬性通訊協定 (EATT):開發人員可透過 EATT,一次將多個指令傳送至配對的耳機。
主要情境
主要有四類用途:
對話:需要低延遲通訊路徑的撥號器和 VoIP 應用程式,可提供高品質音訊並減少電池用量。
遊戲:麥克風和高保真播放功能可同時運作,讓遊戲將高品質音訊串流至可聽裝置。當遊戲將藍牙麥克風設為可使用狀態時,遊戲應用程式就能存取 BLE 音訊輸入。這樣一來,當玩家與其他玩家展開即時對話時,遊戲應用程式就能立即使用麥克風資料。
媒體:媒體應用程式可以設定音訊管理工具的慣用裝置。使用者可以在系統設定中變更慣用裝置,藉此覆寫這項設定。
無障礙功能:支援 BLE 音訊的助聽器現在可以使用麥克風,讓使用者在通話時持續使用助聽器。
BLE 音訊 API 和方法
如要支援 BLE Audio 助聽器,必須使用下列 API 和方法:
AudioManager
setCommunicationDevice()選取用於通訊用途的音訊裝置,例如語音或視訊通話。語音或視訊通訊應用程式可使用這個方法,選取平台預設以外的其他音訊裝置。這個 API 會取代下列已淘汰的 API:startBluetoothSco()、stopBluetoothSco()和setSpeakerphoneOn()。clearCommunicationDevice()會在應用程式結束通話或工作階段後呼叫,確保使用者在不同應用程式之間移動時享有優質體驗。
BluetoothProfile
BluetoothLeAudio會透過 Proxy 物件控制藍牙服務。
Telecom InCallService
InCallService#requestCallEndpointChange()會取代已淘汰的InCallService.setAudioRoute()和InCallService.requestBluetoothAudio()API,讓應用程式要求將音訊路徑導向特定CallEndpoint。用戶不應在要求變更時定義自己的CallEndpoint。新端點應為InCallService.onAvailableCallEndpointsChanged(java.util.List)提供的有效端點之一。CallEndpoint.TYPE_BLUETOOTH透過藍牙傳輸音訊串流。- 上述
InCallServiceAPI 適用於 Android 手機上的預設電話應用程式,或穿戴式裝置、汽車或其他藍牙裝置等其他通話介面,這些介面可能會影響音訊路徑。
Telecom CallControl
- API 級別 34 導入了新的
CallControl類別,取代Connection和ConnectionService,僅適用於 VoIP 應用程式。 CallControl.requestCallEndpointChange()也要求變更CallEndpoint。這個 API 會取代已淘汰的Connection.requestBluetoothAudio()和Connection.setAudioRoute()API。- 除了更新的 Telecom 平台 API,我們也強烈建議您在建構語音和/或視訊通話應用程式時,使用 Telecom Jetpack 程式庫。這個程式庫可大幅簡化整合程序,並改善所有 Android 介面上的 VoIP 通話品質。
音訊裝置資訊
AudioDeviceInfo.TYPE_BLE_HEADSET說明音訊裝置類型為 LEA 裝置。用於識別可聽式裝置是否為 LEA 裝置。
錄音程式
setPreferredDevice():設定音訊轉送要使用的慣用裝置。使用者可以在系統設定中覆寫這項設定。
藍牙轉接器
isLeAudioSupported(): 傳回@BluetoothStatusCodes常數 (FEATURE_SUPPORTED、FEATURE_NOT_SUPPORTED或錯誤代碼),指出裝置硬體是否支援 LE Audio。isLeAudioBroadcastSourceSupported(): 傳回@BluetoothStatusCodes常數 (FEATURE_SUPPORTED、FEATURE_NOT_SUPPORTED或錯誤代碼), 指出裝置硬體是否支援 LE Audio 廣播來源。
依用途分類的指南
以下是根據特定用途實作 LEA 的指引。
語音通訊應用程式
語音通訊應用程式可選擇自行管理音訊轉送和裝置狀態,也可以使用 Telecom API,由該 API 為您處理音訊轉送和狀態邏輯。
自行管理:如果應用程式目前使用
startBluetoothSco()、stopBluetoothSco()和setSpeakerphoneOn(),或想自行管理音訊路徑狀態,請參閱音訊管理員自行管理的呼叫指南。受管理:使用 Telecom Jetpack 程式庫或 Telecom 平台 API 建立音訊或視訊通話應用程式。
這兩項解決方案可讓您快速輕鬆地控制音訊路由,並在藍牙裝置之間切換。詳情請參閱「電信管理通話指南」。
音訊錄音應用程式
- 媒體錄音工具:使用媒體錄音工具錄音時,如果藍牙耳機支援 LEA,現在可以錄製立體聲音訊。請參閱音訊錄音指南。
LE Audio (LEA) 耳機建議
隨著更多 LEA 頭戴式裝置推出,我們在實際測試中發現會降低使用者體驗的問題。規格並未涵蓋所有這些問題。下表列出建議,供 LEA 耳機製造商參考,以提升 Android 使用者的端對端體驗。
| 說明 | 背景資訊 |
|---|---|
支援雙模耳機的跨傳輸金鑰衍生 (CTKD):
|
在 LEA 來源裝置市占率成長前,大多數新推出的 LEA 耳機都會是雙模式。使用者必須能夠順暢配對雙模耳機,並設定兩種傳輸方式。這對 Google 快速配對也很重要。 |
|
支援目標公告 (TA),確保 LEA 耳機可以穩定地重新連線至來源裝置。 LE Audio 耳機應使用 TA 向中央裝置要求連入連線。 將新增至即將推出的 BT SIG。 |
與 BR/EDR 的呼叫模型不同,在 LEA 中,連線必須由中央裝置發起,而 BR/EDR 的呼叫模型則可由手機或耳機發起連線。目前許多耳機都不使用 TA,這表示中央裝置可能無法重新連線至周邊裝置,除非將周邊裝置加入允許清單。不過,使用允許清單的解決方法可能會導致耳機無法連線至其他中央裝置。因此,執法機關耳機必須正確支援 TA,中央裝置才能可靠地重新連線,不必使用可能導致多點連線中斷的解決方法。 |
最佳化雙模式耳機的探索體驗
|
這樣一來,雙模 LEA 耳機就不會在藍牙設定中顯示為重複項目,以免使用者混淆,並確保 LEA 配對體驗不受影響。 動態領導者選舉對於逐步配對的雙模式裝置尤其重要。舉例來說,如果初始配對時只有一個耳機,則應將其視為雙模式裝置。使用者稍後與第二個耳機配對時,只需要與 LE 元件配對,CSIP 會確保兩者在 Android 上分組。 建議在配對期間使用身分位址,因為 BR/EDR 元件已向附近的裝置公開裝置位址。 |
| 支援加強型屬性通訊協定 (EATT)。 | 減少配對和連線延遲。 |
| 支援強大的 GATT 快取機制。 | 降低連線延遲,特別是 TWS 耳機。 |
| 支援連線子評分。 | 可更彈性地安排封包傳輸時間,並節省電力。 |
| 請確保在播放和擷取的預先處理和後續處理期間,訊號處理管道可以 16、24、32 和 48 kHz 運作,並支援更高的頻率。 | 充分運用 LEA 通話或 VoIP 擷取路徑和媒體播放支援的較高取樣率。 |
| 支援 LE 電源控制 | 更完善的電源管理功能 |