色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

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

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

          本文引用地址:http://cafeforensic.com/article/194616.htm

          a.JPG

          b.JPG



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

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



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

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

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉