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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > Android系統(tǒng)WMA文件播放功能的設(shè)計與實現(xiàn)

          Android系統(tǒng)WMA文件播放功能的設(shè)計與實現(xiàn)

          作者: 時間:2011-12-18 來源:網(wǎng)絡(luò) 收藏

          音頻解碼主要是在Decoder的read函數(shù)中完成的:首先,先會判斷是否是音樂定點,如果不是,Decoder會調(diào)用WMAExtrac-tor的read函數(shù)讀取一個未解碼的數(shù)據(jù)包;然后,對該數(shù)據(jù)進(jìn)行解碼,將解碼后的音頻數(shù)據(jù)存放在MediaBuffer的Data()中,再設(shè)置MediaBu-ffer的mRangeOffset和mRangeLength,在讀取數(shù)據(jù)包時會從包中獲取該數(shù)據(jù)包中的時間戳,把該時間戳存放在MediaBuffer的Meta_ data()中的kKeyTime里;最后,WMAdecoder把該MediaBuffer傳回給AudioPlayer。如果是音樂定點,首先,WMADecoder會從AudioPtayer傳過來的ReadOption中獲取時間(option->getSeekTo(seekTimeUs,mode)),在調(diào)用WMASource的read函數(shù)來讀取未解碼音頻數(shù)據(jù)時會把該時間(seekTimeUs)傳給WMASource。WMASource的read函數(shù)獲取到該時間后,通過計算得出該時間要播放的音頻數(shù)據(jù)包的起始位置,然后讀取該數(shù)據(jù)包并傳給WMADecoder對其進(jìn)行解碼,最后將該解碼后的音頻數(shù)據(jù)傳給AudioPlayer。

          3 實驗結(jié)果
          基于平臺的多媒體進(jìn)行設(shè)計的WMA音頻播放,在多媒體框架的本地實現(xiàn)核心Stagefright框架里,添加WMA音頻格式。實現(xiàn)對WMA音頻格式的支持,使Android手機(jī)可以播放WMA音頻格式的文件。經(jīng)過實際測試,播放效果達(dá)到了預(yù)期的要求,聲音清晰、音質(zhì)好。圖4為增加WMA音頻播放模塊后Android源碼編譯結(jié)果的截圖。圖5為播放WMA格式文件時對播放界面的截圖。圖6為拉動滾動條后正常運行的截圖。

          本文引用地址:http://www.ex-cimer.com/article/194616.htm

          a.JPG

          b.JPG



          4 結(jié)束語
          基于Android多媒體模塊中的Stagefright框架,在智能手機(jī)上實現(xiàn)了對WMA音頻格式的支持,使Android智能手機(jī)可以播放WMA音頻格式的媒體文件或流媒體。該設(shè)計在現(xiàn)有基礎(chǔ)上實現(xiàn)了對Android操作中多媒體功能的增強(qiáng)。目前Android平臺手機(jī)仍然不支持RMVB、WAV等視頻格式,所以Android多媒體系統(tǒng)的功能還需繼續(xù)增強(qiáng)和擴(kuò)展。

          c++相關(guān)文章:c++教程



          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: Android WMA 系統(tǒng) 播放

          評論


          相關(guān)推薦

          技術(shù)專區(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); })();