1. 程式人生 > >車機開發之收音機應用開發

車機開發之收音機應用開發

關於收音機安卓除錯開發邏輯一定要先理解的是收音機功能是獨立的一個硬體模組,就算沒有收音機apk,該功能應該也是能從小喇叭聽到收音聲音的,開發收音機apk只不過是方便使用者檢視收音資訊和控制調臺而已,但是對於車機來說就算什麼都不做,至少應該傳送一個切源命令到MCU去通知MCU將聲音通道切換到收音機晶片,否則就算收到臺了也會沒聲音的,因為車機裝置存在多個聲音來源模組到音效晶片,切到誰小喇叭就出誰的聲音;下面是開發流程:


 S700平臺開發收音機apk應用的資料通訊流程:
(1) 首先,收音機是單獨的一個硬體模組(6831),功能都是mcu去實現去控制的,跟應用層沒關係,我們的Radio收音機apk只是拿到mcu發來的資料進行顯示,僅此而已,應用層基本幹不了什麼實際操作,無非就是呼叫幾個api介面傳送某些指令可以簡單通知mcu去控制收音機模組,這是對收音機apk開發的一個整體的認識;

(2) 其次,資料初始化問題:在apk主介面開啟時通過傳送指令去拿,然後更新UI,無非就是當前波段,當前頻率,預存電臺列表等資訊,有seekbar則需要將當前頻率轉換成seekbar的進度值設定到seekbar中即可,沒有就不需要;
(3) 最後,做法問題:之前的做法都是FM分FM1和FM2以及FM3,每個FM都有6個預存電臺,現在只返回一個FM1就代表是FM波段,並直接返回18個預存電臺資訊;AM也是一樣,之前是分AM1和AM2,現在直接是返回AM1就代表AM波段了,返回6個預存電臺,點選UI介面FM和AM按鈕時切換波段傳送指令分別是mMcuManager.mcuRadioBandSet(39)和McuManager.mcuRadioBandSet(42),之前的FM2,FM3,AM2對應的指令基本就作廢了,無用了;全域性搜尋電臺功能是點選按鈕呼叫mMcuManager.mcuRadioScan()介面去實現的,這個搜尋是從頭到尾搜尋,搜尋到的電臺會依次存到18個預存電臺中,等到搜尋完成之後會每個電臺播放幾秒鐘供使用者自己選擇,如果不選擇,那麼等所有搜尋到的臺播放完之後就會跳到第一個搜尋到的電臺;向上向下搜尋都是搜到可用電臺就停止下來不會繼續搜尋了;6831收音機晶片是支援RDS的,但是RDS國外才會使用到的,國內無效;