<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > Nucleus系統(tǒng)的移動(dòng)終端錄音功能設(shè)計(jì)

          Nucleus系統(tǒng)的移動(dòng)終端錄音功能設(shè)計(jì)

          作者: 時(shí)間:2009-08-17 來(lái)源:網(wǎng)絡(luò) 收藏


          3
          3.1 軟件
          手機(jī)的主要是向用戶提供使用界面、完成及錄音文件的播放。從程序的角度看,它是通過(guò)對(duì)現(xiàn)有軟件中的人機(jī)界面、操作API的調(diào)用和對(duì)音頻設(shè)備的管理來(lái)實(shí)現(xiàn)的。整個(gè)錄音事件處理函數(shù)的執(zhí)行流程如圖3所示。

          錄音的事件處理模塊的主要功能是對(duì)人機(jī)界面的錄音請(qǐng)求進(jìn)行響應(yīng)。為了實(shí)現(xiàn)該功能,錄音事件函數(shù)需要完成的工作包括:運(yùn)行控制變量的初始化,錄音文件的創(chuàng)建,事件狀態(tài)處理器的判斷和狀態(tài)維護(hù),進(jìn)行容錯(cuò)處理,調(diào)用底層處理函數(shù)進(jìn)行錄音物理設(shè)備的控制,以及和界面模塊的通信。
          3.2 軟件調(diào)試
          由于資源有限而且沒(méi)有相關(guān)的編譯工具,因此嵌入式的開(kāi)發(fā)需要借助宿主機(jī)(通用計(jì)算機(jī))來(lái)編譯出目標(biāo)機(jī)的可執(zhí)行代碼,交叉編譯是唯一可行的編譯方式。在PC機(jī)上設(shè)置serial port,把功能實(shí)現(xiàn)代碼分配到整個(gè)手機(jī)軟件功能的plutommi、media和llaudio文件夾下,通過(guò)使用編譯命令對(duì)各個(gè)文件夾進(jìn)行編譯來(lái)生成可執(zhí)行程序并下載到手機(jī)的NOR Flash中,然后在CPU中運(yùn)行。
          錄音部分的軟件進(jìn)行錄音、錄音暫停、繼續(xù)錄音、播放錄音5個(gè)事件處理時(shí),軟件運(yùn)行過(guò)程中錄音軟件內(nèi)部的跟蹤程序通過(guò)UART口打印出來(lái)的錄音軟件動(dòng)態(tài)運(yùn)行信息。當(dāng)特定的按鍵事件發(fā)生后,錄音界面模塊就會(huì)向其事件處理模塊發(fā)送相應(yīng)的消息,來(lái)完成事件的處理。當(dāng)事件開(kāi)啟后驅(qū)動(dòng)模塊便與其事件處理模塊進(jìn)行錄音文件中的數(shù)據(jù)交互。結(jié)合對(duì)錄音軟件人機(jī)界面的仿真測(cè)試結(jié)果,可以證明整個(gè)錄音軟件播放部分代碼的設(shè)計(jì)達(dá)到了預(yù)期目標(biāo)。

          結(jié) 語(yǔ)
          隨著通信的不斷發(fā)展以及在相應(yīng)的嵌入式平臺(tái)上擴(kuò)展出來(lái)的新技術(shù)不斷涌現(xiàn),設(shè)備中的媒體播放功能就顯得尤為重要。本文系統(tǒng)地分析了AMR編解碼原理及相關(guān)的錄音流程,結(jié)合錄音和播放功能的測(cè)試數(shù)據(jù)以及對(duì)數(shù)據(jù)的分析結(jié)果,可明確看到整個(gè)錄音軟件運(yùn)行正確。軟件的運(yùn)行情況和軟件的整體設(shè)計(jì)相一致。


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();