新聞中心

        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ù)進行解碼,將解碼后的音頻數(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對其進行解碼,最后將該解碼后的音頻數(shù)據(jù)傳給AudioPlayer。

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

        本文引用地址:http://www.104case.com/article/194616.htm

        a.JPG

        b.JPG



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

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



        上一頁 1 2 3 4 下一頁

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

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 施甸县| 攀枝花市| 二连浩特市| 永平县| 皮山县| 泌阳县| 霍林郭勒市| 武功县| 宜阳县| 台中市| 江源县| 弥勒县| 大关县| 昌都县| 安康市| 布拖县| 中宁县| 上杭县| 兴仁县| 阿尔山市| 临西县| 芷江| 威信县| 钦州市| 平邑县| 张北县| 林口县| 定边县| 保康县| 红桥区| 子洲县| 桐城市| 疏勒县| 栖霞市| 三河市| 炎陵县| 河北区| 霍林郭勒市| 商南县| 宽甸| 门头沟区|