重慶郵電大學(xué)光電工程學(xué)院 陳鴻躍 彭 珂
一種Android視頻數(shù)據(jù)接收與播放技術(shù)的實(shí)現(xiàn)
重慶郵電大學(xué)光電工程學(xué)院 陳鴻躍 彭 珂
視頻播放是Android系統(tǒng)不可缺失的重要部分,基于Android開發(fā)的很多應(yīng)用都涉及Android系統(tǒng)上視頻播放的技術(shù)。本文針對一種特定的應(yīng)用場景,介紹了一種視頻數(shù)據(jù)的接收與播放技術(shù)。通過對Android終端接收到的數(shù)據(jù)進(jìn)行組合,接收完整后保存為視頻數(shù)據(jù),然后調(diào)用播放器進(jìn)行播放[1]。另外本文給出了一種Android布局界面切換的實(shí)現(xiàn)方法,可以實(shí)現(xiàn)不同界面的動態(tài)切換。
Android;視頻播放;布局界面
應(yīng)用市場上很多Android應(yīng)用都包含視頻播放的功能,這些應(yīng)用基本上都是采用互聯(lián)網(wǎng)技術(shù),通過Android系統(tǒng)支持的各種網(wǎng)絡(luò)通信API獲取視頻數(shù)據(jù),然后進(jìn)行解碼播放,這種方式已經(jīng)成為很多網(wǎng)絡(luò)APP的主流。但是這種方式需要Android終端接入互聯(lián)網(wǎng),且對終端產(chǎn)品質(zhì)量有一定的要求,這就使得Android終端容易遭受網(wǎng)絡(luò)攻擊,給Android終端安全造成了很大的威脅。本文基于一種特定的應(yīng)用場景,通過數(shù)字多媒體廣播系統(tǒng)(DMB)獲取視頻數(shù)據(jù),將視頻數(shù)據(jù)保存在終端,然后調(diào)用視頻播放器進(jìn)行播放。這種方式擺脫了Android終端對網(wǎng)絡(luò)的依賴,同時也使得終端的安全得到了保證。
系統(tǒng)方案設(shè)計主要包含數(shù)據(jù)接收和視頻播放兩個方面。數(shù)據(jù)接收模塊包含兩個模塊,第一個模塊是通過外部硬件終端將數(shù)字多媒體廣播發(fā)射的視頻數(shù)據(jù)處理后通過USB接口送往Android系統(tǒng),第二個模塊Android系統(tǒng)對接收到的視頻數(shù)據(jù)進(jìn)行解碼并組成視頻數(shù)據(jù)。視頻播放模塊同樣包含兩個模塊,第一個模塊是視頻檢測模塊,通過監(jiān)測應(yīng)用的特定文件夾中是否有視頻數(shù)據(jù)來更新播放隊列,第二個模塊是視頻播放模塊,該模塊通過調(diào)用一個視頻播放器來實(shí)現(xiàn)[2][3]。
圖1 系統(tǒng)方案
數(shù)據(jù)接收模塊負(fù)責(zé)接收視頻數(shù)據(jù),該模塊主要包括硬件接收模塊和軟件處理模塊。對于硬件接收模塊由于是直接應(yīng)用已有技術(shù),在此不再贅述;軟件處理模塊主要將硬件終端接收到的數(shù)據(jù)通過TPEG協(xié)議進(jìn)行解碼,將解碼后的數(shù)據(jù)按照發(fā)射時的順序拼接成完整視頻,然后將此視頻保存至Android應(yīng)用的指定文件夾下,供視頻播放模塊調(diào)用。
視頻播放模塊負(fù)責(zé)播放視頻數(shù)據(jù),該模塊通過對文件進(jìn)行掃描,判斷文件是否存在從而選擇終端是否對視頻文件進(jìn)行播放。
(1)視頻監(jiān)測:通過開啟一個始終運(yùn)行的線程,來監(jiān)測Android應(yīng)用的文件夾中是否包含視頻文件,若視頻文件存在就加入到播放隊列中:
(2)視頻播放:通過對視頻播放隊列進(jìn)行檢測,若該對列包含視頻數(shù)據(jù),則開啟播放代碼。本文采用雙隊列模式播放視頻,將接收到的視頻文件保存在queue隊列中,一直播放tempqueue隊列中的視頻文件,若tempqueue中的文件播放完畢,再從queue中復(fù)制。
本文設(shè)計的Android應(yīng)用采用兩種界面,布局文件采用幀布局,當(dāng)軟件處于數(shù)據(jù)接收狀態(tài)時,應(yīng)用界面顯示正在接收的頁面,當(dāng)接收完畢后開啟播放界面,從而提高應(yīng)用的交互性和友好度。
本Android應(yīng)用采用AndroidStudio軟件開發(fā),將工程生成的APK文件安裝到真機(jī)經(jīng)過長時間連續(xù)測試,視頻播放流暢,應(yīng)用穩(wěn)定運(yùn)行。達(dá)到了視頻播放的功能。
圖2 測試效果圖
本文介紹了一種Android系統(tǒng)接收視頻文件及播放技術(shù)的實(shí)現(xiàn)方法,能實(shí)現(xiàn)將數(shù)字多媒體廣播發(fā)射的視頻數(shù)據(jù)保存至Android應(yīng)用的文件夾下,從而調(diào)用播放器對視頻文件進(jìn)行播放。經(jīng)過長時間的聯(lián)合調(diào)試,整個系統(tǒng)穩(wěn)定運(yùn)行,實(shí)現(xiàn)了Android終端播放視頻的功能。
[1]宋人杰,張鵬宇,林本俠.一種新的音視頻同步方案的研究[J].東北電力大學(xué)學(xué)報,2014,2:015.
[2]慕銀鎖.ANDROID系統(tǒng)研究與移植[D].電子科技大學(xué),2012.
[3]范埃夫里.Android多媒體開發(fā)高級編程[M].清華大學(xué)出版社,2012.