重慶郵電大學光電工程學院 陳鴻躍 彭 珂
一種Android視頻數據接收與播放技術的實現
重慶郵電大學光電工程學院 陳鴻躍 彭 珂
視頻播放是Android系統不可缺失的重要部分,基于Android開發的很多應用都涉及Android系統上視頻播放的技術。本文針對一種特定的應用場景,介紹了一種視頻數據的接收與播放技術。通過對Android終端接收到的數據進行組合,接收完整后保存為視頻數據,然后調用播放器進行播放[1]。另外本文給出了一種Android布局界面切換的實現方法,可以實現不同界面的動態切換。
Android;視頻播放;布局界面
應用市場上很多Android應用都包含視頻播放的功能,這些應用基本上都是采用互聯網技術,通過Android系統支持的各種網絡通信API獲取視頻數據,然后進行解碼播放,這種方式已經成為很多網絡APP的主流。但是這種方式需要Android終端接入互聯網,且對終端產品質量有一定的要求,這就使得Android終端容易遭受網絡攻擊,給Android終端安全造成了很大的威脅。本文基于一種特定的應用場景,通過數字多媒體廣播系統(DMB)獲取視頻數據,將視頻數據保存在終端,然后調用視頻播放器進行播放。這種方式擺脫了Android終端對網絡的依賴,同時也使得終端的安全得到了保證。
系統方案設計主要包含數據接收和視頻播放兩個方面。數據接收模塊包含兩個模塊,第一個模塊是通過外部硬件終端將數字多媒體廣播發射的視頻數據處理后通過USB接口送往Android系統,第二個模塊Android系統對接收到的視頻數據進行解碼并組成視頻數據。視頻播放模塊同樣包含兩個模塊,第一個模塊是視頻檢測模塊,通過監測應用的特定文件夾中是否有視頻數據來更新播放隊列,第二個模塊是視頻播放模塊,該模塊通過調用一個視頻播放器來實現[2][3]。

圖1 系統方案
數據接收模塊負責接收視頻數據,該模塊主要包括硬件接收模塊和軟件處理模塊。對于硬件接收模塊由于是直接應用已有技術,在此不再贅述;軟件處理模塊主要將硬件終端接收到的數據通過TPEG協議進行解碼,將解碼后的數據按照發射時的順序拼接成完整視頻,然后將此視頻保存至Android應用的指定文件夾下,供視頻播放模塊調用。
視頻播放模塊負責播放視頻數據,該模塊通過對文件進行掃描,判斷文件是否存在從而選擇終端是否對視頻文件進行播放。
(1)視頻監測:通過開啟一個始終運行的線程,來監測Android應用的文件夾中是否包含視頻文件,若視頻文件存在就加入到播放隊列中:

(2)視頻播放:通過對視頻播放隊列進行檢測,若該對列包含視頻數據,則開啟播放代碼。本文采用雙隊列模式播放視頻,將接收到的視頻文件保存在queue隊列中,一直播放tempqueue隊列中的視頻文件,若tempqueue中的文件播放完畢,再從queue中復制。

本文設計的Android應用采用兩種界面,布局文件采用幀布局,當軟件處于數據接收狀態時,應用界面顯示正在接收的頁面,當接收完畢后開啟播放界面,從而提高應用的交互性和友好度。

本Android應用采用AndroidStudio軟件開發,將工程生成的APK文件安裝到真機經過長時間連續測試,視頻播放流暢,應用穩定運行。達到了視頻播放的功能。

圖2 測試效果圖
本文介紹了一種Android系統接收視頻文件及播放技術的實現方法,能實現將數字多媒體廣播發射的視頻數據保存至Android應用的文件夾下,從而調用播放器對視頻文件進行播放。經過長時間的聯合調試,整個系統穩定運行,實現了Android終端播放視頻的功能。
[1]宋人杰,張鵬宇,林本俠.一種新的音視頻同步方案的研究[J].東北電力大學學報,2014,2:015.
[2]慕銀鎖.ANDROID系統研究與移植[D].電子科技大學,2012.
[3]范埃夫里.Android多媒體開發高級編程[M].清華大學出版社,2012.