本文適用範圍:
ADK23.3~
問題/功能描述:
LE Audio Auracast在高通最新平台上的如何實現
正文:
在上一篇博文中介紹了如何實現廣播應用的.側重在開發調試功能的實現,而在實際產品應用中是無法如此操作.本文目的就是如何將就如何用更加友好的UI交互方式實現廣播功能來,並就此延申介紹.
一. 添加相關UI事件實現自動掃描添加廣播功能
大體過程就是按鍵觸發啟動定時廣播掃描,定時結束後將周圍所有廣播信號按照信號強度排列選取其中信號值最高的廣播加入.也可以在這裡指定過濾機制按照名字或者id進行篩選
以下是代碼展示
1)創建接受消息task
2)處理UI事件,發起掃描廣播動作,並將前面task註冊為接受回傳消息接口
3)消息接受處理,主要使用到2個消息
LE_BROADCAST_MANAGER_SELF_SCAN_DISCOVERED_SOURCE_IND
掃描收到的新廣播後返回消息,過濾處理在這裡添加
LE_BROADCAST_MANAGER_SELF_SCAN_STATUS_IND
掃描事件狀態改變消息,這裡主要用到一個掃描超時狀態,超時後進入匹配加入廣播操作
二. 固定廣播收發組合模式
使用預置參數方式固定廣播ID.默認ADK中支持MIB key對廣播參數做默認設置,其中包含常用的廣播名稱,廣播ID,廣播加密還有廣播數據包配置等.結合使用對組合式的產品可謂如魚得水.省去了掃描過程簡化整個流程.可以直接拿ID配網.
MIB KEY具體定義在ps_key_map.h中查看.
PS_KEY_USB_DONGLE_MODE USR17 usb dongle mode
PS_KEY_BROADCAST_SRC_NAME USR83 broadcast source name
PS_KEY_BROADCAST_SRC_CODE USR84 broadcast encryption code
PS_KEY_BROADCAST_SRC_ADV_CONFIG USR85 broadcast source advertising
PS_KEY_BROADCAST_SRC_AUDIO_CONFIG USR86 broadcast source audio config
PS_KEY_BROADCAST_ID USR87 broadcast ID
subsys7_psflash.htf中對各個KEY具體用法有解釋
USR17 = [ 00 03 ] USB發射模式設置.第一個字節表示音頻發送模式0高品質 1 遊戲模式低延時 2 廣播模式,第二位表示傳輸模式1 BR/EDR 2 LE audio 3 雙模
USR83 = [ 41 75 72 61 63 61 73 74 ] 廣播名字,總長30字節,默認是Auracasr
USR84 = [ 31 32 33 34 35 36 37 38 39 40 41 42 ] 廣播加密密鑰,長度4-16字符
USR85 = [ 00 00 80 00 C0 00 01 00 00 02 01 01 00 04 58 01 78 01 14 00]廣播參數設置,項目較多參看BapBroadcastSrcAdvParams結構體說明
USR86 = [ 04 01 00 64 00 14 00 02 00 02 00 01 00 00 00 04 00 00 00 04 00 00 08 00 00 00 27 10 00 00 4E 20]廣播音頻參數設置
USR87 = [ 00 11 22 33 ]廣播ID設定,共4個字節第一位默認為0,最長可以為6位16進制數字字符串,
DISABLE_DONGLE_MODE_FROM_PSKEY
按照自己需求配置對應key後,開機運行後就會依照設定開啟廣播.
三. 進一步拓展組網方式和效率
1.使用手機廣播助理協助藍牙設備組網操作,優點是最快捷方便,不需額外操作.限制是當下支持LE Audio手機型號偏少.
2.音箱添加顯示螢幕,通過按鍵選擇.優點更加自由模式,限制是需要修改代碼支持GUI ,工作量相對要求大.
四.後記
作為一個收發廣播功能,ADK在這塊應用完整度有待提升.所以想要使用,都是需要自行完善.這個過程需要切合自身產品功能來設計高效的人機交互模式.
五 . FAQ
1.多設備加入網絡需要怎麼操作?
發射端廣播啟動後,其他設備可以隨時加入網絡,廣播信息在持續定時的循環廣播發送
2.廣播網絡中能不能同步控制和音量調節?
不可以的,只能調節本地音量
3.廣播中音頻可以支持什麼格式?
不支持高碼率編碼,目前使用的是SBC/AAC
4.代碼是否可以提供?
可以線下聯繫技術人員
5.為什麼廣播連接成功後沒有提示?
因為這個不是一般意義上的配對,只是單向接受到廣播數據.
評論
EthanChu
8 個月前