藍牙 | 軟體:auracast 盲切廣播源邏輯

關鍵字 :QualcommADKauracast

        在使用Auracast的過程中,通常需要透過手機向連接的設備發送指令,以連接到指定的廣播源。然而,這種操作方式略顯繁瑣。此前,我們曾在一篇部落格文章中介紹過如何透過設備自身搜尋廣播並進行連接的方法,詳情請參考。藍牙|軟體 QCC51xx系列開發之LE AUDIO Auracast進階使用 - 大大通(簡體站)該方法透過選擇信號最強的來源進行播放,但如果目標信號來源較弱,該如何處理呢?本篇文章將詳細介紹相關的處理邏輯。

 

處理邏輯步驟

  1. 掃描並保存廣播來源
    首先,設備需要掃描附近的廣播源。與以往不同的是,掃描結果將被保存下來。在 leBroadcastManager_SelfScanSendDiscoveredSourceInd 函數中記錄目標音源的 ID,可以將其存儲為一個較長的陣列。可設定一個 UI 按鍵,掃描結束後,用於觸發循環連接陣列中的 ID。

  2. 判斷目前的廣播狀態
    在按鍵處理邏輯中,需先判斷當前是否有接收廣播。可透過LeBroadcastManager_IsAnySourceSyncedToPa函數進行判斷。

  3. 暫停目前的廣播
    如果目前有廣播正在同步,需先暫停該廣播的同步操作,請使用以下指令:leAudioTest_BassModifySource(source_id,0)
  4. 切換廣播來源

切換廣播來源有兩種方案:

方案A:清除目前的廣播並切換

1. 從管理器列表中清除當前廣播,需注意與暫停同步操作間隔一定時間,並確保清除成功:

leAudioTest_BassRemoveSource (source_id)

2. 讀取保存的陣列中的下一個廣播ID,添加並同步廣播:

leAudioTest_BassAddSource(sid,broadcast_id,2)

方案B:直接切換管理器列表中的廣播

1. 不清除管理器列表,直接透過以下指令切換:leAudioTest_BassModifySource(source_id,2)

2.     請注意,預設情況下管理器列表僅支援存儲兩個設備,可透過修改 BROADCAST_MANAGER_MAX_BROADCAST_SOURCES 參數來增加容量。

3.     若採用此方法,掃描結束後需一次性將所有廣播通過 leAudioTest_BassAddSource 添加到管理器列表。重新掃描時,需通過 leAudioTest_BassRemoveSource 移除全部廣播源。

 

透過這種方法,就可以透過按鍵的方式,循環選擇附近的廣播來源進行播放。以上就是本期部落格文章的全部內容,如果有任何疑問,請在文章下方留言評論,或者聯繫我們,我們會盡量安排處理喔(o´ω`o)و。感謝大家的瀏覽,我們下期再見。

 

 

FAQ 1:如何確保掃描到的廣播源信號品質?


A1:可以透過信號強度(RSSI)排序,優先選擇信號較強的廣播來源。

 

FAQ 2:如何篩選掃描到的廣播源信號?
A2:掃描結果裡面有名字、地址、RSSI,有需要的話可以透過這些參數進行篩選。

 

常見問題 3:為什麼要使用測試函數?
A3:測試函數有詳細的使用範例代碼,如果是自己定義的代碼,可以參考測試函數的代碼來實現。

 

FAQ 4:廣播來源切換時是否會影響音訊播放的連續性?
A4:切換過程中可能會短暫中斷音訊播放,建議優化切換邏輯以減少延遲。

 

FAQ 5:訊號較弱的廣播來源是否可以強制連接?
A5:可以透過手動選擇目標廣播源的ID並強制連接,但音訊品質可能會受到信號強度的影響。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

:

評論