資源簡介
基于Android平臺(tái)的在線播放器設(shè)計(jì)與實(shí)現(xiàn)
第7卷第19期(2011年7月) Computer Knowledge and Technology電腦知識(shí)與技術(shù) byte buf[= new byte[16384 nt unread= mediaCnStream.read(; media Cn Stream即來自服圓 務(wù)端的輸入流 out write(bul,0, unread;/將輸人流數(shù)據(jù)寫入緩沖區(qū)里的固定文件 我 CHANGES 上述下載過程應(yīng)定義在一個(gè)單獨(dú)的線程中,以實(shí)現(xiàn)以播放的異步, 新個(gè)線積!于下緘據(jù) 與播放最 關(guān)鍵代碼如下 Runnable r= new runnable 下藏敢據(jù) public void runO downloadStream(mediaUrl, Incur);調(diào)用下載文件函數(shù) new Thread(r). start( 對(duì)于音樂盒的設(shè)計(jì)則更復(fù)雜一些,既涉及到與服務(wù)器通信、下載文 播腰剛間讀度這¥長 撬放薯 件、存儲(chǔ)文件、播放文件等獨(dú)立功能,同時(shí)也對(duì)下載和播放肉個(gè)功能進(jìn)行 連帶設(shè)計(jì)和實(shí)現(xiàn)。流程圖如圖3所示 璇播放父 播放文件的關(guān)鍵代碼如下: File buffered File new File(down Load CacheDir, playing Media"+ counter-+)+"dat)y/緩沖區(qū)定義一個(gè)dat文件,用 以> 于將下載的文件復(fù)制到該文件中 邊播R邊檢 FilesystemUtil. copy File( downloading MediaFile, bufferedFile;/這個(gè)函數(shù) 主要用于將下載的文件 downloading McdiaF;l復(fù)制到 bufferedfilo中,為 播放提供源文件 計(jì) MediaPlayer mPlayer new MediaPlayer FileInputStream fis new FileInputStream(bufferedFile); m Player set DataSource(fis. getFDO;/|方法返回與流相關(guān)聯(lián)的文件說 圖3MP3播放器詳細(xì)流程圖 明符 pLayer: set Audio Stream Type( Audio Manager STREAM_ MUSIC)∥/設(shè)置播放類型為播放流文件 Runnable updater= new Runnable public void run( i mediaPlayer start handler.post(updater); 播放文件被定義在一個(gè)線程中,該線程運(yùn)行在主線程隊(duì)列,當(dāng)播放文件時(shí)間與播放位置差距小于一定值時(shí),如 mediaPlayer. getDuration( -mediaPlayer. getCurrentPosition0 < 2000 即暫停播放,等待將下載的文件覆蓋播放文件后,繼續(xù)執(zhí)行播放,這樣就基本實(shí)現(xiàn)了播放與下載的異步與通信,關(guān)鍵代碼如下 pause0y/執(zhí)行暫停播放 File SystemUtil. copy filet( downloading File, bufferedFile)}∥/等待將卜載的文件覆蓋播放文件 mediaPlayer= MediaPlayerService. createMediaPlaye( bufferedFile)/重新創(chuàng)建播放文件 if(media Player. getDuration0-mediaPlayer getCurrentPosition(<= 2000) start(mp3lno)/重新執(zhí)行播放 4結(jié)束語 在 Android平臺(tái)下開發(fā)并設(shè)計(jì)∫一套C/S標(biāo)準(zhǔn),此標(biāo)準(zhǔn)實(shí)現(xiàn)∫服務(wù)端與 Android客戶端的通 信,在客戶端豐富了音樂播放的各項(xiàng)功能,提高了用戶體驗(yàn),本文重點(diǎn)是將音樂的下載和播放通過 線程分別處理,實(shí)現(xiàn)了兩者同步執(zhí)行、異步處理的效果。通過深入研究 Android平臺(tái)架構(gòu),以及多 媒體播放和線程知識(shí),最終完成了在 Android客戶端的播放器邊下載邊播放核心功能,效果圖如 圖4所示。 本文基本實(shí)現(xiàn)了最初構(gòu)想,初步解決了當(dāng)前 Android系統(tǒng)對(duì)流媒體播放的不完全攴持的問 題,在后續(xù)的開發(fā)中,還應(yīng)繼續(xù)對(duì)多媒體的其他方面如視頻、錄像等互聯(lián)功能進(jìn)行研究和探索。 器園器回 參考文獻(xiàn) Conder s, Darcey LAndroid移動(dòng)應(yīng)用開發(fā)[M]北京人民郵電出版社,2010 圖4在線播放器效釆圖 [2]也達(dá)峰 Eclipse編程技術(shù)與實(shí)例[M!北京:人民郵電出版社,2006 [3]HomcC.Android-anOpenHandsetAollianceProject[eb/olj-(2008-01-01).http://codegoogle.com/android/what-is-android.html 4公磊周聰基于 Android的移動(dòng)終端應(yīng)用程序開發(fā)與研究肌計(jì)算機(jī)與現(xiàn)代化,2008(8):85-89 [5]謝兆學(xué)蔣愛權(quán)流媒體技術(shù)的jva實(shí)現(xiàn)計(jì)算機(jī)應(yīng)用研究,2002,190:147-241 [6]何秋紅 Java Media api的研究與應(yīng)用D貴陽:貴州大學(xué)2006屆碩士研究生學(xué)位論文,2006 [7 Wang Y, Zhu QR, Shaw L M aximallys moothim agree covery in transformcodingl C.IEEE Trans Communnication, 1993: 1544-1551 [8]Devlin移動(dòng)開發(fā)社區(qū)Android專區(qū)[EBOL]ht/www.deydiv.com/android.html 本欄目責(zé)任編:謝媛媛 8公軟件設(shè)計(jì)開搜k:4593
代碼片段和文件信息
評(píng)論
共有 條評(píng)論