<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ò) 收藏

          摘要 為增強多媒體的功能,在智能手機上添加音頻功能,使平臺支持格式,格式文件。基于Android多媒體的Stagefright框架,通過創(chuàng)建WMA的文件解析單元和解碼單元,使WMA音頻文件中的編碼數(shù)據(jù)被正確地解碼成原始數(shù)據(jù)并輸出。通過在Android平臺測試機上反復WMA音頻文件,播放聲音清晰、音質(zhì)良好。
          關(guān)鍵詞 Android;WMA;多媒體;Stagefright

          WMA可用于多種格式的編碼文件中。微軟公司在WMA9中大幅改進了其引擎,實際上幾乎可以在同文件同音質(zhì)下比MP3體積約小1/3,因此適合用于網(wǎng)絡(luò)串流媒體及行動裝置。許多播放器軟件也紛紛開發(fā)出支持WMA格式的插件程序來,但Android手機尚未支持該格式,故在Android手機中添加WMA音頻解碼格式具有一定意義。

          1 Andr0Id平臺及其多媒體框架結(jié)構(gòu)
          1.1 Android
          Android是Goosle與OHA(Open Handset Alliance)推出的開源手機操作系統(tǒng)。Android基于Linux平臺,由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。Android平臺自底向上由4個層次組成:Linux內(nèi)核層、運行時庫和其他庫層、應(yīng)用框架層、應(yīng)用程序?qū)印?br /> (1)Linux Kernel。Android底層是一個基于Linux2.6內(nèi)核來開發(fā)的獨立操作系統(tǒng),該層主要用于提供系統(tǒng)的底層服務(wù),包括安全機制、內(nèi)存管理、進程管理、網(wǎng)絡(luò)堆棧和驅(qū)動等。
          (2)Libraries和Android Runtime。這一層主要與進程運行相關(guān),包含了一套C/C++函數(shù)庫,主要包括Libc、Media、Framework、WebKit、SGL、OpenGLES、FreeType、SQLite等。核心庫提供了Java編程核心庫的大多數(shù)功能,這些功能通過Android應(yīng)用框架展現(xiàn)給開發(fā)人員,另外每一個Android程序都有獨立的Dalvik虛擬機為它提供運行環(huán)境。
          (3)Application Framework。該層是Android平臺專為應(yīng)用程序開發(fā)而設(shè)計的。開發(fā)者通過使用核心應(yīng)用程序調(diào)用Android框架提供的API,這個應(yīng)用程序結(jié)構(gòu)被設(shè)計成方便復用的組件,該層由一系列的服務(wù)和系統(tǒng)構(gòu)成。
          (4)Applications。Android本身附帶一些核心的應(yīng)用程序包,例如Email客戶端、瀏覽器、日歷、Google地圖、SMS短消息程序等。
          1.2 媒體播放器結(jié)構(gòu)及多媒體實現(xiàn)的核心
          Android多媒體系統(tǒng)縱向跨越了Android系統(tǒng)的所有4個層次:Java應(yīng)用程序?qū)印ava框架層、本地代碼層、Linux驅(qū)動層。多媒體本地代碼層是多媒體系統(tǒng)的重點。Libmedia庫提供多媒體部分的本地框架,Libstagefright提供多媒體核心功能的實現(xiàn)。
          Android媒體播放器的模塊結(jié)構(gòu)如圖1所示。

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

          c.JPG


          上層的應(yīng)用程序?qū)⒚襟w的URI作為輸入設(shè)置到媒體播放器中,再經(jīng)過應(yīng)用框架、JNI和本地框架,一直到設(shè)置到StagefrightPlayer中。在這個過程中沒有數(shù)據(jù)流的傳遞,只是傳遞了URI路徑。經(jīng)Stagefright-Player中的解析單元進行解析后,讀取音頻流,經(jīng)過解碼器的處理轉(zhuǎn)換成原始數(shù)據(jù)。音頻原始數(shù)據(jù)將被送到音頻輸出環(huán)節(jié)中。
          Stagefright是Android多媒體本地實現(xiàn)的核心。Stagefright中包括的內(nèi)容很多,單從播放的角度來看StagefrightPlayer輸入的是文件或網(wǎng)絡(luò)媒體流,輸出的是音視頻輸出設(shè)備,基本功能包括了媒體流控制、文件解析、音視頻文件解碼等方面。所以,要實現(xiàn)Android多媒體對WMA音頻格式媒體文件或流媒體的播放,就需要擴展Stagefright中的文件解析和音頻解碼等方面,添加WMA格式的文件解析單元和WMA音頻文件解碼單元。

          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); })();