藍牙低功耗音訊 (LEA) 技術不必耗費大量電力,就可以讓使用者接收高傳真音訊,同時也能在不同用途間流暢切換,Android 13 (API 級別 33) 內建支援 LEA。
在 LEA 來源裝置市占率增加之前,大多數 LEA 耳機都會採用雙模式。使用者應該可以在雙模式耳機上配對及設定這兩種傳輸方式。
用途
建議您在下列用途中整合 LEA:
分享音訊:使用者可以同時將多個音訊串流分享至一或多個音訊接收裝置。來源裝置和已連結裝置之間的音訊會同步。
音訊廣播:使用者可以向親朋好友播放音訊,也可以訂閱公共廣播內容,以便取得資訊、娛樂或無障礙用途。
LC3 音訊轉碼器支援:這是預設的音訊轉碼器,可取代 A2DP (媒體) 和 HFP (語音) 中使用的 SBC 轉碼器。LC3 的效率更高、可重新設定,而且品質更佳。
音訊取樣功能改善:使用麥克風時,耳機可維持高輸出音訊品質。使用藍牙麥克風時,經典藍牙會降低音訊品質。使用 BLE Audio 時,輸入和輸出取樣率可達 32 kHz。
立體聲麥克風:聽覺裝置可使用立體聲麥克風錄音,強化空間音訊效果。
支援 Hearing Aid Profile (HAP):HAP 可為使用者提供比先前 ASHA 通訊協定更高的無障礙性和使用性。使用者可透過助聽器撥打電話及進行 IP 網路語音傳遞技術應用程式。
強化屬性通訊協定 (EATT) 支援:EATT 可讓開發人員一次傳送多個指令給已配對的聽診器。
重要情況
用途主要分為四種類別:
通訊:需要低延遲通訊路由的撥號和 VoIP 應用程式,可提供高品質音訊,並減少電池用量。
遊戲:同時使用麥克風和高保真播放功能,可讓遊戲將高品質音訊串流至可穿戴式裝置。當遊戲啟用藍牙麥克風,遊戲應用程式即可存取 BLE 音訊輸入內容。接著,當玩家開始與其他玩家進行即時對話時,遊戲應用程式就能立即使用麥克風資料。
媒體:允許媒體應用程式設定音訊管理員的偏好裝置。使用者可以透過系統設定變更偏好裝置,覆寫這項設定。
無障礙功能:支援 BLE Audio 的助聽器現在可以使用麥克風,讓使用者在通話時持續使用助聽器。
BLE Audio 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
會透過藍牙傳送音訊串流。- 上述
InCallService
API 的設計宗旨是供 Android 手機上的預設手機應用程式使用,或是其他可能影響音訊轉送的呼叫介面,例如穿戴式裝置、汽車或其他藍牙裝置。
Telecom CallControl
- 新的
CallControl
類別已在 API 級別 34 中導入,僅用於 VoIP 應用程式,用來取代Connection
和ConnectionService
。 CallControl.requestCallEndpointChange()
也會要求變更CallEndpoint
。這個 API 會取代已淘汰的Connection.requestBluetoothAudio()
和Connection.setAudioRoute()
API。- 除了更新後的 Telecom 平台 API 之外,強烈建議您在建構語音和/或視訊通話應用程式時,使用 Telecom Jetpack 程式庫。這個程式庫可大幅簡化整合程序,並改善所有 Android 途徑的 VoIP 通話。
音訊裝置資訊
AudioDeviceInfo.TYPE_BLE_HEADSET
將音訊裝置類型描述為 LEA 裝置。用於識別可聽裝置是否為 LEA 裝置。
錄音程式
setPreferredDevice()
可設定音訊轉送使用的偏好裝置。使用者可以在系統設定中覆寫這項設定。
藍牙轉接器
- 如果平台的硬體支援 LEA,
isLeAudioSupported()
就會傳回。 isLeAudioBroadcastSourceSupported()
會傳回平台硬體是否支援 LEA。
依用途區分的操作指南
以下是根據特定用途實作 LEA 的指引。
語音通訊應用程式
語音通訊應用程式可以選擇透過自行管理狀態,或使用 Telecom API 來管理音訊路由和狀態邏輯,以便管理音訊路由和裝置狀態。
自行管理:如果應用程式目前使用
startBluetoothSco()
、stopBluetoothSco()
和setSpeakerphoneOn()
,或想自行管理音訊路由狀態,請按照音訊管理員自行管理的呼叫指南操作。受控:使用 電信 Jetpack 程式庫或 電信平台 API 建立音訊或視訊通話應用程式。
這兩種解決方案可讓您快速輕鬆地控制音訊路由,並在藍牙裝置之間切換。詳情請參閱電信代管通話指南。
錄音應用程式
- 媒體錄影機:使用媒體錄影機錄製音訊時,如果藍牙聽診器支援 LEA,現在可以以立體聲錄製。請參閱錄音指南。
LE Audio (LEA) 耳機建議
隨著越來越多的 LEA 耳機發布,我們在實際測試中發現問題,會對使用者體驗造成負面影響。規格並未涵蓋所有這些問題。以下表格列出 LEA 耳機製造商應遵循的建議,以便改善 Android 使用者的端對端體驗。
說明 | 背景資訊 |
---|---|
支援雙模式耳機的跨運輸金鑰衍生 (CTKD):
|
在 LEA 來源裝置市占率增加之前,大多數新的 LEA 耳機都會採用雙模式。使用者必須能夠順利配對雙模式耳機,並設定兩種傳輸方式。這對於 Google 快速配對功能也非常重要。 |
如要讓 LEA 耳機可靠地重新連線至來源裝置,請支援指定廣播 (TA)。 LE 音訊耳機應使用 TA 要求中央裝置的傳入連線。 將加入即將推出的 BT SIG。 |
在 BR/EDR 的分頁模型中,可透過手機或耳機啟動連線,但 LEA 中的連線必須由中央裝置啟動。目前許多耳機都不會使用 TA,也就是說,如果未將裝置加入許可清單,中央裝置可能無法重新連線至周邊裝置。不過,許可清單中的解決方法可能會導致耳機無法連線至其他中央裝置。因此,LEA 耳機必須正確支援 TA,讓中央裝置能夠可靠地重新連線,而不會出現可能中斷多點連線的解決方法。 |
以最佳方式偵測雙模式耳塞式耳機
|
這可避免雙模式 LEA 耳塞在藍牙設定中顯示為重複的項目,以免使用者感到困惑,並影響 LEA 配對體驗。 對於逐步配對的雙模式裝置而言,動態選舉領袖功能尤其重要。舉例來說,如果在初始配對時只有一個耳機可用,則應將其呈現為雙模式裝置。使用者日後配對第二個耳機時,只需配對 LE 元件即可,而 CSIP 會確保在 Android 裝置上將兩者分組。 建議在配對期間使用 ID 位址,因為 BR/EDR 元件已將裝置的公開位址公開給附近的裝置。 |
支援加強型屬性通訊協定 (EATT)。 | 減少配對和連線延遲時間。 |
支援強大的 GATT 快取功能。 | 降低連線延遲時間,特別適用於 TWS 耳機。 |
支援連線子評分。 | 可提供更靈活的封包排程,並可能節省電池電量。 |
確保在播放及擷取的前後處理期間,信號處理管道可在 16、24、32 和 48 kHz 上執行,同時支援更高的頻率。 | 充分利用 LEA 通話或 IP 網路語音傳遞技術擷取路徑和媒體播放功能支援的較高取樣率。 |
支援 LE 電源控制 | 更完善的電源管理機制 |
情境類型支援
說明 | 背景資訊 |
---|---|
除非耳機明確不支援特定結構定義類型,否則請使用指派號碼 6.12.3 中列出的所有結構定義類型。 | 舉例來說,如果不支援「遊戲」背景資訊類型,Android 就會傳送遊戲音效。特別注意,「未指定」的上下文類型並不代表「任何上下文類型」,也不涵蓋不支援的上下文類型。 |
當中樞裝置與周邊裝置的 ASCS 互動時,周邊裝置必須連線至中樞裝置的 MCS 和 TBS。 中央裝置可能不會一律使用 LE 音訊做為串流路徑,因為可能會改用 A2DP 或 HFP。週邊裝置可使用 ASCS 互動,藉此判斷中央裝置是否會使用 LE 音訊進行串流。 以下列舉幾個 ASCS 互動範例,包括讀取、寫入及註冊通知。 |