前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的多媒體播放器主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞: J2ME 設計與分析 播放與控制
1.引言
隨著通信技術和計算機技術的迅猛發展,3G時代的到來,人們對手持設備的應用有了更高的要求,人們已不滿足于簡單的通話、收發短信等基本功能,而更多的是要求有多媒體應用,能利用手機進行上網沖浪、3D游戲、播放視頻等。
2.J2ME技術介紹
J2ME平臺存在的基礎是設備使用操作系統的多樣性。雖然JAVA的運行速度經常受到指責,但手機平臺的發展已經使得這種缺陷可以忽略,而J2ME適用平臺的多樣性使得J2ME技術成為手機應用開發的首選。它的主要技術優勢在于:有良好的跨平臺能力,實現了write once,run anywhere,有著與J2EE后端的無縫結合能力。因為J2ME是基于Java語言的,所以它天生就具有以下優點:
?動態內容傳輸。新的應用、服務和內容可以通過不同類型的網絡動態下載。
?安全。類文件校驗、明確定義的應用程序編程接口和安全組件確保了第三方應用程序的行為是可靠的。不會對設備或者網絡造成損害。
?交叉平臺的兼容性。標準化語言組件和庫意味著由于支持J2ME配置和簡表所帶來的約束使應用和內容可以在不同設備之間靈活地傳輸。
?離線獲取。不用激活網絡連接,應用就可以被使用。這種特點降低了傳輸費用,減輕了可能的網絡故障帶來的影響。
3.系統的設計與分析
3.1目前存在的問題
隨著通信技術和計算機技術的迅猛發展,人們對手持設備的應用有了更高的要求,人們已不滿足于簡單的通話、收發短信等基本功能,而更多的是要求有多媒體應用,能利用手機進行上網沖浪、3D游戲、播放視頻等。移動設備通過網絡觀看視頻將是必備的功能。目前的城市的網絡覆蓋率比較好。
在這種情況下,多媒體播放器在設計與實現中存在一些問題:
3.1.1由于多媒體手機在硬件性能上與PC機有著顯著的差異,在多媒體手機上播放的視頻短片的比特率要遠遠低于PC機上的,所以在設計多媒體手機時要受到多媒體手機硬件與操作系統的影響。
3.1.2現在多媒體手機外接的存儲卡容量不是很高,當你在旅行的過程中或者在移動的過程中,因為你的存儲卡的容量有限,所以你只能看少量的影音文件。
3.1.3現在多媒體手機在播放視音頻文件的過程中,如果看到自己喜歡的圖片,無法保存下來,作為永久的珍藏。
3.1.4如何設計一款全新的多媒體播放器,為將來的多媒體移動服務打下堅實的基礎。
3.2對目前系統的改進
本項目是一個關于手機播放器的系統,通過移動終端手機能夠實現在任何時間、地點進行多媒體音頻與視頻的播放,本項目在空間上延伸了基于Internet的網絡服務,在時間上更具有靈活性。本系統只能播放格式為MPEG的視頻文件與格式為WAV的音頻文件,這是由底層的開發包所決定的。
本項目具有以下幾個功能模塊:
3.2.1視頻(主要是MPEG格式)的播放模塊。播放形式主要采用兩種形式:本地播放與網絡播放。本地播放也就是所謂的視頻文件在本地手機存儲器里,直接進行播放,網絡播放主要是視頻文件放在網絡服務器,手機進行調用播放。它在空間上延伸了Internet的網絡服務,在時間上更具有靈活性。
3.2.2音頻(主要是WAV格式)的播放模塊。播放形式主要采用兩種形式:本地播放與網絡播放。運行方式與視頻播放模塊相似。
3.2.3抓圖模塊。在進行播放本地與網絡視頻時,當你認為一個視頻的瞬間你很喜歡,你就可以進行抓圖,把它截取下來。
3.2.4控制模塊。在進行播放音頻與視頻的同時,有一些基本的控制功能,比如播放、停止、暫停、增加音量、減小音量等。
4.播放與控制的設計與實現
它主要是由VideoCanvas繼承Canvas,并有以下幾個方法:VideoCanvas(),initialize(),paint(),time2pix(),open()等。它主要實現的功能是:對播放的視頻或音頻文件進行一系列的操作,比如播放、停止、暫停、增加音量、減小音量等。
以下是主要的代碼:
public class VideoCanvas extends Canvas implements Runnable,PlayerListener,{//在框架中添加videocanvas類的構造函數,初始構造函數,初始化屏幕}
private void initialize(){//添加返回按鈕}
public void paint(Graphics g){//只有播放視頻的時候可以使用全屏}
private int time2pix(long time){//計算時間的字符串格式}
public void open(String url){//分析打開資源的URL}
public void start(){//獲得視頻時間長度}
public void close(){//關閉程序}
public void pause(){//首先判斷player對象是否已經創建了,如果存在player點}
public synchronized void pauseApp(){//player正在播放,所以停止它并且釋放資源}
public void run(){//獲得播放視頻所需要的時間}
public void playerUpdate(Player plyr,String evt,Object evtData){//是否播放結束}
private void doSnapshot(){//進行抓圖功能}
protected void pointerPressed(){//更改滑桿上面的小方塊的位置,然后請求重畫屏幕}
public void commandAction(Command c,Displayable s){//控制播放}
public synchronized void startApp(){//開啟程序}
public void keyPressed(int keyCode){//利用手機里的按鍵進行一些操作}
switch(keyCode){
case Canvas.KEY_NUM4://減小播放速度
case Canvas.KEY_NUM6://增加播放速度
case Canvas.KEY_STAR://減小音量
case Canvas.KEY_NUM0://靜音
case Canvas.KEY_NUM7://向后跳躍,即快退
case Canvas.KEY_NUM5://停止播放
case Canvas.KEY_NUM9://向前跳躍
case Canvas.KEY_NUM2://暫停,播放
case Canvas.KEY_NUM8://全屏,目前不支持
case Canvas.KEY_NUM1://沒有發揮作用
case Canvas.KEY_NUM3://跳過}
5.結語
本文研究的重心在于探討利用流媒體技術使手機播放器中本地與網絡(無線)終端MIDP應用開發技術的解決方法及資源的網絡通信、信息整合問題。本文中深入研究了J2ME體系結構及其平臺下手機程序MIDP的開發技術,詳細分析了本地終端與無線終端和資源的通信解決方法,并構造了一個手機多媒體播放器系統。本文設計與開發了播放與控制,通過該系統,完整說明了MIDP應用程序開發的流程控制、界面設置與流媒體和視頻壓縮技術。本系統還會不斷地改進,實現更廣、更新、更實用的功能,以適應時代的需求。
參考文獻:
[1]吳一丁.J2ME技術在移動設備上的應用.java研究組織,2005.
[2]黃寶雄.流媒體技術.中國多媒體視訊,2005.
[3]劉雄武.移動流媒體技術及其應用發展方向.CSDN,2005.06.
關鍵詞:嵌入式;播放器;流媒體
中圖分類號:TP37
隨著Android在智能手機行業上的成功應用,以Android 作為嵌入式系統的開發,特別是在非手機系統上的應用方面的開發尤為引人關注。相比于PalmOS、PSOS、VxWorks等專用系統,Android系統更適合于機頂盒這類嵌入式信息家電的需要。由于在數字電視和機頂盒的軟件架構中使用了不同的操作系統,不同的中間件平臺,不用的應用程序框架使得軟件架構層面出現了極大的差異化。在操作系統層面,Linux,uCos,VxWorks,WinCE,iTron,ThreadX等不同的操作系統在不同的產品上都有相應的部署;在中間件層面,有公開的標準化的中間件平臺,比如MHP,Tru2way,ACAP,ARIB,MHEG5等,也存在私有的非標準的中間件平臺;而不同的中間件軟件提供商更會提供各自不同的中間件解決方案,這些解決方案之間大多是無法互相兼容的。
1 需求分析
為了解家用網絡播放設備的實際需求,作者選取了不同層次的家庭用戶為對象進行需求調研,首先了解了該公家庭網絡播放設備的產品現狀,然后在此基礎上,分析總結了用戶的實際需求。
家用網絡播放設備主要由四大子功能系統組成:控制子系統、信號處理子系統、網絡接口子系統和用戶擴展接口子系統。
基本業務:模擬電視廣播、FM廣播,模擬付費(加擾)電視;數字視頻;衛星數字視頻廣播(DVB-S);地面數字視頻廣播(DVB-T);有線數字視頻廣播(DVB-C);MMDS數字視頻廣播;數字付費(加擾)電視數字音頻IP電話/傳真;音樂(MOD);實時音頻卡拉OK點播(KOD)數字數據信息點播(IOD);數據廣播(BIS);股市證券信息廣播(SIS);VBI圖文電視;應用程序下載;遠程數據庫流向;
電子商務:交互式多媒體;互聯網接入服務(IAS);遠程教育;遠程醫療;網上購物;網上收費;電子廣告;股市證券服務(SES);網上(音、視頻)廣播業務;可視電話與電視會議;社區多功能服務。
2 嵌入式網絡播放設備的設計
2.1 總體設計
圖1 終端的系統結構
由圖1可以看出,整個終端主要分為數據接收,媒體播放和顯示輸出三大部分。從功能上分別概括為流媒體數據接收模塊,音視頻解碼播放模塊和人機交互模塊。其中,流媒體數據接收模塊,主要是登陸服務器,接收并處理來自網絡的流媒體數據,本論文研究系統中為MPEG-2 TS流,并將其放入環形緩沖區中,實現客戶端與服務器的交互。
音視頻解碼播放模塊,通過STB810開發板用硬件實現對MPEG-2 TS傳輸流的解復用,分解出視頻基本流和音頻基本流,并送往解碼模塊,調用DirectFB的解碼器接口,完成對音視頻流的解碼,從而實現對媒體播放的處理和控制。
人機交互模塊,涉及輸入設備和圖像的顯示輸出,且由于嵌入式平臺下面沒有集成類似MFC(Microsoft Foundation Classes,微軟基礎類)的基礎類庫和完善的消息響應機制,論文將借助于DirectFB實現了一套自己的事件響應、處理機制。同時使用封裝好的DirectFB API接口直接將圖形圖像數據解碼并顯示。
2.2 TCC8900的硬件平臺
本文研究采用的機頂盒是Telechips公司的STB810開發板,STB810使用基于Linux的軟件架構和提供能迅速使用設備特性的標準API,不需要對底層驅動和嵌入式DSP編程有更多的了解就可以使用該客戶端進行應用程序開發。
硬件接口有:RJ45以太網接口、兩個SATA硬盤接口、兩個SCART連接口、分量視頻輸出(YPrPb)、四個USB接口、兩個USB 1.1接口、兩個USB 2.0接口、兩個UART接口、左右兩個模擬音頻接口、一個數字音頻輸入和輸出接口(S/P-DIF)和一個高清多媒體接口(HDMI)。其中,第一個SCART連接口連接RGB電視設備或者CVBS信號+快慢開關信號,第二個SCART連接口連接CVBS的視頻錄像機(VCR)或者Y/C信號+慢開關信號。
STB810的核心設備為PNX8550媒體處理引擎,該PNX8550媒體處理引擎集成了一個MIPS32架構的微控制器和兩塊功能強大的用于音視頻處理的DSP。它可以支持MPEG-2解碼,MPEG-2傳輸流的處理,DVB,DES,Multi2,AES的條件訪問,視頻的縮放和圖片的顯示。并在一個單芯片上進行所有數字音/視頻處理,提供復雜的視頻縮放、解交叉和畫質增強功能,并且支持廣泛的調諧前端。通過模擬后端設備PNX8510/11轉化為模擬視頻信號輸出給電視機。
2.3 STB810的軟件架構
IPTV機頂盒作為客戶端,除了需要具有良好的硬件平臺外,還需要擁有軟件系統才能夠實現IPTV業務功能。相應的,STB810和大多數的機頂盒軟件一樣采用分層結構,分為內核層、中間解釋層和應用層三個層次:
內核層:包括機頂盒終端硬件和Linux內核。而對于機頂盒終端硬件這一部分主要是指機頂盒硬件中的流媒體處理引擎與流媒體解碼芯片;Linux內核(版本2.6.21)是指嵌入式Linux操作系統,用以控制硬件。
中間解釋層:重新搭建整個軟件平臺的開源軟件的工具包。包括一個用于音視頻直播/點播使用的視頻傳輸協議棧;用于驅動流媒體解碼芯片的驅動程序和外接存儲設備以及攝像頭的驅動程序;用于繪制界面、將解碼后的數據顯示并輸出到電視上的DirectFB庫。
應用層:包括基于中間層開發的應用程序,如視頻點播、直播等擴展應用。DVB API采用的是Linux DVB API version3,主要用到其中的Linux DVB Demux Device API,用于解復用TS流。ALSA為Advanced Linux Sound Architecture,先進Linux聲音架構,是Linux平臺上的用途廣泛的音頻API,用于音頻流混頻;DirectFB是專為嵌入式開發的輕量級圖形界面庫。
3 嵌入式視頻點播終端軟件環境的搭建
3.1 交叉開發環境的建立
交叉編譯,是嵌入式開發過程中的一項重要技術,它的主要特征是某機器中執行的程序代碼不是在本機編譯生成,而是由另一臺機器編譯生成,一般把前者稱為目標機,后者稱為主機。采用交叉編譯的主要原因在于,大多數嵌入式目標系統不能提供足夠的資源供編譯過程使用,因而只好將編譯工程轉移到高性能的主機中進行。
在本文研究的系統中,就是在Linux PC機上生成在STB810 核心處理器(PNX8550)上執行的代碼。該代碼包含了Linux內核和根文件系統中所有的PNX8550可執行文件。即整個系統的交叉環境是建立在宿主機Linux PC機上的,目標板即STB810開發板用于運行操作系統和應用軟件,而STB810所用到的操作系統的內核編譯、應用程序的開發調試都是通過Linux PC機編譯成可運行代碼,然后再利用交叉編譯調試工具編譯連接生成可執行代碼,最后將其下載到STB810開發板上運行。
3.2 設置環境變量
環境變量因用戶不同而定義不同。它可以定義工程的工作環境,也可以定義調用所需庫的路徑。一旦定義了環境變量,系統腳本就可以通過這些信息得到所需的程序。在本文中設置環境變量的操作為:
在路徑“/…/stb810-SP8”下執行:source ./setup.sh。
3.3 重建根文件系統設備
Linux根文件系統包含一些設備文件,這些文件保證了內核向STB810的設備驅動器傳送信息。
通過執行:cd /…/stb810-SP8/build_128M_BASE/rootfs/dev && ./MAKEDEV來重新創建根文件系統設備。
3.4 導出根文件系統
文件系統是操作系統的重要組成部分。文件系統的概念使得用戶能夠查看存儲在設備上的文件和路徑而無須考慮實際物理設備的文件系統類型。Linux 透明地支持許多不同的文件系統,將各種安裝的文件和文件系統以一個完整的虛擬文件系統的形式呈現給用戶。Linux的根文件系統具有非常獨特的特點,就其基本組成來說,Linux 根文件系統包括支持Linux 系統正常運行的基本內容,包含著系統使用的軟件和庫,以及所有用來為用戶提供支持架構和用戶使用的應用軟件。導出根文件系統。STB810內核把build_128M_BASE/rootfs這個目錄都掛載到了Linux PC機上。build_128M_BASE/rootfs這個路徑下包含了STB810的一些樣本程序,必須的庫和其他的一些軟件。
流媒體數據接收模塊的實現實際完成了客戶端與服務器之間的通信,本系統采用RTP協議來傳輸實時數據,用RTCP協議來檢測網絡質量,用SDP協議描述媒體流信息,以便播放器進行解碼,用RTSP協議作為控制流,來控制視頻點播的播放、暫停、停止等。
用戶通過EPG獲得感興趣影片的URL,選擇播放該影片,機頂盒與相應的RTSP流媒體服務器建立連接,發送點播請求。根據傳遞給媒體數據接收線程的參數,解析出請求媒體流的URL。通過函數parseVoDEPGFile(ppVoDEntry_head)解析視頻點播節目單Vod.txt獲取.stream_info數據,從節目單中提取出.stream_info數據,即關于視頻文件的參數,如ip:192.168.101.188,port:8554,streamName:0122等,將這些info數據傳遞給結構體ip。
4 總結
本文深入討論了基于Android的家用網絡播放終端的技術理論和核心技術,然后重點闡述了IPTV視頻點播終端的系統設計:流媒體客戶端與服務器的交互流程,音視頻的解碼播放和消息驅動機制;實現了一種能提供良好視頻質量和友好人機交互方式的嵌入式視頻播放終端。
參考文獻:
[1]李巖.容盤祥基于53C4B0嵌入式ucLinux系統原理及應用[M].北京:清華大學出版社,2005:293.
[2]黃曉桃.視頻點播系統的研究與實現[J].中國學術期刊,2008,05.
[3]錢華峰,雷航.面向對象嵌入式GUI研究和模式應用[J].計算機應用,2004,4:10-13.
[4]楊春霞,俞斯樂.數字電視機頂盒圖形用戶界面的設計與實現[J].信號處理,2003(10):52-56.
設計了一種基于嵌入式系統的高清晰、便攜式的車載播放系統。該播放系統的軟件設計以Mplayer為后臺,實現對音視頻文件的解碼播放等工作,并以Qt的基礎類庫為基礎設計了嵌入式多媒體播放器的前端控制圖形界面,通過創建QProcess進程,實現對播放過程的控制,與后臺Mplayer進行通信,實時獲取并顯示播放信息,并在指定窗口對音視頻碼流進行輸出顯示。
關鍵詞:
汽車多媒體;車載播放;嵌入式系統;多媒體播放器
目前,國內車載電子設備市場極度缺乏多媒體綜合軟件,該軟件能有效地將車載導航、影音圖像、倒車雷達、娛樂互動等多個功能整合,方便乘客和車主的使用[1]。將多種娛樂和使用功能整合統一,使得設備簡潔美觀,同時降低了重復安裝的成本和投入??梢詷O大地減少車內空間消耗,降低整車油耗[2]。多媒體共屏展示也能保證駕駛員的操作強度,保證行車安全。因此,將行車信息、娛樂互動、交流通信、車載導航等功能集于一體的嵌入式綜合媒體系統符合市場和環境的發展要求[3]。
1車載嵌入式播放器總體設計
出于應用領域、自帶資源、可擴展資源、功耗等多方面的考慮,選擇Linux內核為嵌入式多媒體播放器的操作系統核心。將多媒體技術應用于嵌入式系統中面臨著諸多的技術難題,嵌入式設備的特點決定了其資源通常非常有限,而有限的資源意味著需要進行多方面技術的優化[4]。首先,嵌入式設備采用蓄電池提供能源,所以對系統的功耗要求比較嚴格;第二,嵌入式設備上通常沒有實用的圖像加速器,聲卡等硬件加速設備的支持;第三,不存在DirectX,DirectShow等高層多媒體的支持?;谏鲜隹紤],有必要設計適用于嵌入式應用的嵌入式處理器,嵌入式操作系統。根據嵌入式多媒體播放器的功能需求及技術特點,通常將嵌入式多媒體播放器的體系結構劃分為硬件層、內核層和應用層,具體如圖1所示。系統的硬件層的硬件平臺包括嵌入式微處理器和設備,通過合理選型和匹配可以完成滿意的底層硬件組合。本系統的嵌入式MCU使用三星公司的S3C2410高速微處理器,S3C2410高速微處理器作為整個硬件系統的控制核心,接收、處理相關數據并實時發出控制指令。與其配合的系統設備是完成系統功能的必要組建和模塊,涉及系統存儲模塊FLASH和E2PROM,LCD輸出單元、主控電路和音頻輸出模塊等。軟件部分包含應用層和內核層兩個部分。應用層包含嵌入式Linux操作系統和硬件驅動程序,包括BootLoader,Linux內核,根文件系統3部分。應用層包含嵌入式用戶應用程序、音頻解碼器和GUI。本系統選擇嵌入式Linux操作系統作為操作系統[5]。
2操作系統平臺的構建
內核是整個Linux系統的核心,根據實際情況針對內核的配置進行選擇,本質上指根據開發系統的功能需求對已有的操作系統進行選擇,保留開發需求的系統單元,刪除不需要的模塊單元。在本系統中,嵌入式Linux內核選擇ARMLinux內核。Linux內核的配置系統由Makefile、配置文件(config.in)、配置工具組成[6]。完成內核的數據參數配置后,不能將程序數據直接下載到嵌入式系統中進行調試運行,因為此時數據仍然以源代碼的形式存在。此時,為了生成最終能在嵌入式操作系統上運行的可執行代碼[7],需要進一步對內核進行編譯。過程結束后,Image和zImage兩個內核映像文件會在arch/arm/boot目錄下生成,zImage為壓縮后的映像文件,Image為正常大小的映像文件。得到內核映像文件后,首先在開發板使用的宿主機(PC)上建立一個tftp服務,使用DNW工具,在開發板上電時按任意鍵進入UBoot提示符,執行以下命令。在嵌入式操作系統正常運行時,需要使用根文件系統支持各種功能[8],在內核剛啟動運行時根文件系統需要掛載起來用于支持訪問外部設備,同時完成內核模塊應用程序的裝載和運行,避免出現Kernelpanic的情況,防止系統內核在啟動時沒有根文件的支持。在實際應用中,嵌入式操作系統使用動態隨機存取器、同步動態隨機存取器、FLASH存儲器作為存儲設備[9]。基于存儲設備,使用JFFS2,YAFFS,CRAMFS,ROMFS,RAMFS等常見系統作為存儲設備的嵌入式文件系統。在本系統中,選擇NANDFLASH作為硬件提案所使用的存儲芯片,選用NANDFLASH上使用比較廣泛的Cramfs文件系統作為嵌入式根文件系統。嵌入式Linux操作系統的啟動流程如圖2所示。系統啟動流程包括六個步驟:(1)系統復位,從地址0x00開始執行,進入步驟(2);(2)啟動Bootloader模塊,進入步驟(3);(3)判斷系統是否進入Linux,啟動Linux內核映像,不啟動則進入Uboot的命令操作環境,如果啟動內核,進入步驟(4);(4)系統從NANDFLASH加載內核到內存中,完成對硬件設備的初始化工作,進入步驟(5);(5)掛載根文件系統,執行init進程,并從/etc/inittab取得配置文件,進入步驟(6);(6)提示執行用戶應用程序或用戶登錄信息。
3視頻播放器軟件設計
3.1基于Mplayer實現多媒體播放器Mplayer是一個Linux下的電影播放器(也能運行在許多其他的Unices和非X86的CPU上)。Mplayer的邏輯結構可以分為四個層次,即:輸入層、分流層、解碼層和輸出層,其結構如圖3所示。本文選擇Mplayer作為后臺設計播放軟件。利用Qt/E為軟件平臺設計GUI圖形控制界面,對多媒體播放器的播放過程進行控制。由于條件限制,本實驗在宿主機上編譯并安裝了Mplayer,通過Qt設計基于X86的多媒體播放器。
3.2軟件總體模塊設計由于Qt/Embedded工具可以繞過XWindowsSystem協議客戶端庫,直接讀/寫幀緩存的FrameBuffer的數據信息,因此實現Qt類庫對幀緩存的直接讀/寫操作,使用基于Qt/Embedded的應用程序可以完成。本系統使用嵌入式Linux作為操作系統,通過Qt的圖形平臺和函數庫完成嵌入式多媒體綜合播放。多媒體播放系統采用模塊化設計思想,其架構如圖4所示。嵌入式多媒體播放器包含五個主要的模塊:(1)I/O(輸入/輸出模塊):用于多媒體文件的讀入和輸出。(2)UI(用戶界面單元):用戶界面單元的作用是方便用戶操作嵌入式媒體播放器的各項功能,提供良好的人機操作互動界面和使用體驗。(3)插件接口單元:讀入多媒體數據(通過輸入插件獲取I/O模塊發送過來的數據)、調用Mplayer對文件進行解碼播放、文件總的時間長度、編碼類型、比特率等信息的獲取、暫停、快進、快退、停止、輸出、輸入等的動作,輸入動作具體指將輸出插件完成解碼的數據信息傳送到系統輸出輸入單元的過程。(4)Mplayer解碼單元:為了對不同類型的多媒體文件進行解碼操作,系統選擇的Mplayer解碼單元由分離器、音視頻解碼器等部分組成。(5)GUI單元:為了方便快捷的產生讀/寫FrameBuffer以及用戶界面,GUI單元通過使用Qt/E嵌入式工具作為底層圖形庫。軟件總體模塊中各單元之間的相互連接關系是:通過輸入/輸出單元讀入音視頻信息數據,用戶界面單元在接收到播放信息指令后,調用插件模塊相應的函數,產生相應的信號,調用Mplayer完成對多媒體文件的解碼,完成解碼之后將數據送到I/O模塊輸出。
3.3控制流程設計主程序設計流程如圖5所示。當從菜單項打開視頻文件時會觸發triggered()信號,執行slotopen()槽函數,調用Qfiledialog的getOpenFileName()函數從對話框中選擇要播放的視頻文件。系統首先判斷文件格式是否為*.avi格式,如果是,則創建一個Qprocess進程,通過該進程調用Mplayer后臺對視頻文件進行播放,并在指定區域進行輸出顯示。
4交互式圖形界面設計
QImage類提供了一種與硬件訪問無關的圖片存儲方式。QPainter則主要用來完成繪圖事件。QPushButton提供了圖形用戶界面最長用到的命令按鈕部件。此GUI交互界面利用QtDesigner以QMainWindow類為基礎設計了主框架,包括菜單欄以及狀態欄等;同時,以QWidget類為基礎創建了一個對視頻播放進行控制的插件接口,并通過合理的布局與主窗體組合在一起。
5播放系統測試在指定目錄打開
avi格式視頻文件,運行效果如圖7所示。在播放過程中,通過狀態欄實時顯示當前視頻文件的播放時間。通過界面下方的按鈕對播放器的播放過程進行音量調節、暫停、快進、快退、停止等控制,基本達到了預期的效果。打開視頻文件時,終端開始輸出文件的加載路徑,開始讀取并輸出ANS_TIME_POSITION(視頻播放時間)參數值,在Qt與Mplayer之間完成了通信。當在控制臺實施各種控制操作時,在終端輸出執行的操作動作并發送該信號,調用相應的槽函數完成對視頻播放的控制動作。以上是在主機上運行播放程序執行播放控制的過程。在主機上運行的Qt程序是基于X結構的,而在實際的嵌入式開發中,需要直接通過FrameBuffer進行顯示。由于條件限制及其他因素,通過qvfb模擬程序在嵌入式開發板中運行的情況,如圖8所示。從圖8中可以看出,在qvfb中運行該程序時,菜單項的中文顯示出現了方塊型的亂碼,這說明菜單項已經得到了識別,只是qtopia中缺少相應的中文字體庫,在默認的情況下,qvfb會調用字體庫中的默認字體,這樣在顯示中文時會出現如上問題。可以在網絡上下載相應的中文字體庫并拷貝到Trolltech/Qtopiacoreopensource4.3.0/lib/fonts中。
6結論
2、一般的設備都支持MP3音頻格式,到網上搜索并下載MP3格式的音頻放入U盤當中。
3、到汽車上,找到汽車的USB插口,將下載好歌曲的U盤插上USB接口,打開U盤播放器,播放U盤中的歌曲。
4、連接完成,設備識別U盤以后,需要在車上的多媒體播放器進行選擇。
查看sd卡存儲內容可以把SD卡放手機里,在文件管理里面打開查看,也可以把SD卡取下來,放到電腦上查看。
SD存儲卡是一種基于半導體快閃記憶器的新一代記憶設備,由于它體積小、數據傳輸速度快、可熱插拔等優良的特性,被廣泛地于便攜式裝置上使用,例如數碼相機、平板電腦和多媒體播放器等。
(來源:文章屋網 )
電腦內存卡。SD卡就是內存卡,其是一種建立在半導體快閃記憶器的新一代記憶設備,其特點是體積小、數據傳輸速度快、可熱插拔等優良等,SD卡被普遍地于便攜式裝置上使用,比如有數碼相機,個人數碼助理和多媒體播放器等。
SD卡的主要引腳和功能描述如下:1、CLK。也就是時鐘信號,控制器或者 SD 卡在每個時鐘周期傳輸一個命令位或數據位,在 SD 總線的默認速度模式下頻率可在0~25MHz 之間變化。
2、CMD。命令和響應復用引腳,命令是由控制器發給 SD 卡,可以是從控制器到單個 SD 卡,也可以是到 SD 總線上所有卡。
3、DAT0~3。數據線,數據可以從卡傳向控制器也可以從控制器傳向卡。
(來源:文章屋網 )
1、要準備好SD卡讀卡器,以及SD卡。把讀卡器插入到電腦上。
2、打開臺式機計算機,選擇內存卡。
3、然后右鍵格式化,點擊這個開始。
4、點擊這個確定,然后看到正在把SD卡格式化。
找到藍牙按鍵,打開后,把手機的藍牙打開,開始搜索,查找信號以后,有的需要輸入密碼,密碼在車上的藍牙顯示屏能看到,輸入后可以顯示配對成功。密碼一般是0000或者1234。
車載藍牙(英文Bluetooth)系統中的藍牙技術是從手機的藍牙技術延續下來的,擁有相同的發射系統。手機藍牙連接成功后可進行藍牙音樂和藍牙功能的使用,車載藍牙的功能就是自動辨識移動電話,不需要電纜或電話托架便可與手機聯機,車主可以不接觸手機,甚至是雙手保持在方向盤上,都可以控制手機,用語音指令控制接聽或撥打電話。也可以同步手機里面的多媒體播放器進行音樂播放。
使用車載藍牙接聽電話的好處是:保證駕駛人的行車安全,通過藍牙對接,把開車時的電話轉移到車載免提電話上,從而避免了因用手機接聽造成的分神而導致事故的引發。
(來源:文章屋網 )
【關鍵詞】小型無人機 客戶端 服務器端 同步
小型o人機作為靈活的高速空中飛行器,不僅在軍用、工業等方面具有一定的使用價值,而且在農業領域也具有重要的使用價值,受到許多農業部門及相關專家的高度重視。無人機實時傳輸高清視頻圖像到服務器端,可以有效的幫助科研人員獲取資源信息,制定研究方案。
1 系統總體設計
本系統主要包括客戶端、服務端兩部分設計與開發。
(1)客戶端主要利用無人機完成高清視頻圖像的采集,然后經過編碼壓縮后傳輸到無人機遙控接收器。
(2)在網絡條件下,無人機遙控接收器通過對數據流進行封裝后將其發送到指定的服務器端。
(3)服務器端通過多媒體播放器實時接收客戶端發送的數據包,并將其同步顯示。
2 技術方案
本系統的設計主要是基于大疆精靈4,主要包括:基于無人機數據采集的客戶端、同步顯示高清視頻圖像的服務器端。詳細的設計方法如下:
2.1 客戶端的設計與開發
(1)在大疆官網上進行注冊,申請大疆.Android SDK密鑰(key)。
(2)通過DJICamera,調用CameraReceivedVideoDataCallback()方法獲取實時傳輸的視頻流。其回調函數返回的視頻流主要是H.264視頻編碼格式,H.264是目前最常用的視頻編碼格式之一,其具有高壓縮比的同時還擁有高質量流暢的圖像,可以工作在實時通信應用低延時模式下。
(3)利用InetAdddress封裝服務器主機端的IP地址。InetAdddress的實例對象包含以數字形式保存的IP地址(如:192.168.1.1),同時還可能包含主機名(如:)。InetAdddress類提供了將主機名解析為地址(或反之)的方法。
(4)創建DatagramSocket對象,DatagramSocket主要用于發送、接收數據,它主要采用UDP協議進行數據網絡的傳輸。
(5)發送i幀,必須注意i幀iframeId 的獲取。例如iframeId = dji.midware.R.raw.iframe_1280x720_p4;
(6)利用DatagramPacket 封裝回調函數返回的視頻流,通過DatagramSocket發送封裝的數據。
2.2 服務器端的設計與開發
(1)安裝VLC media player,VLC多媒體播放器支持眾多音頻與視頻解碼器及相關格式。此處通過VLC接收客戶端發送的網絡串流。
(2)配置VLC相關參數,第一步:打開VLC media player,點擊菜單欄“工具”選項中的“首選項”,點擊彈出界面左下角的“全部”單選按鈕,切換到“高級偏好設置”界面,點擊“輸入/編解碼器”下的“去復用器”選項,將其參數設置成“H264視頻去復用器”。第二步:點擊菜單欄“媒體”選項中的打開網絡串流,輸入網路URL(如:udp:@:9001),點擊播放按鈕,即可實時接收客戶端發送的數據。
3 無人機實時傳輸的應用領域
結合研究領域--農業信息化,下面主要介紹無人機實時傳輸在農業方面的應用。
農業作為國民經濟中分布區域最廣泛、經營項目最復雜、受自然條件和社會經濟因素影響最大的基礎產業,通過利用無人機實時傳輸數據到服務器端能夠有效的解決農業中的部分應用問題,從而促使農業信息化發展。其部分應用如下:
3.1 在區域土地規劃方面
傳統區域土地規劃工作一直處于人工階段,農業科技人員,通過大量調查,得到關于土地規劃相關資料。部分區域由于受到地勢等主觀因素的影響,經常會導致獲取的相關信息不準確。利用小型無人機低空飛行獲取土地高分辨率圖像,這樣,保證了土地規劃方法的科學性、針對性和先進性。
3.2 在區域農業灌溉方面
由于小型無人機采用高分辨率數碼單反相機實時獲取圖像,可以利用Wi-FI將其圖像實時傳輸到PC或服務器端。通過相關軟件分析圖像數據,從而方便、準確的測量灌溉實際作物的布局和面積,進一步計算實際灌溉水需求量,從而正確的制定灌溉水分配方案。
3.3 在森林火災方面
森林火災是自然災害之一,不僅會造成森林大面積燒毀、不少野生動物滅絕或處于瀕危,而且也會危機到廣大人民的生命安全。無人機能夠代替消防員人在火災現場進行高空或者近距離的觀察,監測,火勢蔓延情況,將其數據通過網絡傳輸給消防中心。消防中心通過分析發送回的數據,能有效的組織消防人員抗災。
3.4 其它農業方面
可以廣泛用于農業病蟲害監測、農作物生長情況監測,作物生長環境監測、農業保險勘察等。
參考文獻
[1]賈鵬宇,馮江,于立寶,張佳鑫.小型無人機在農情監測中的應用研究[J].農機化研究,2015(04).
[2]陳威,郭書普.中國農業信息化技術發展現狀及存在的問題[J].農業工程學報,2013(22).
[3]高萬林,李楨,于麗娜,王進.加快農業信息化發展,促進農業現代化建設[A].紀念中國農業工程學會成立30周年暨中國農業工程學會2009年學術年會(CSAE 200)論文集[C],2009.
(通訊作者:楊揚)
作者簡介
宋飛(1989-),男,四川閬中市人,學生,云南師范大學信息學院在讀碩士,研究方向為農業信息化。
楊揚(1980-),男,云南省昆明市人。本文通訊作者,博士,云南師范大學信息學院講師,2007年獲得日本早稻田大學計算機碩士學位,2013年獲得新加坡國立大學NGS博士學位,主要研究方向醫學圖像配準,地理空間信息技術,人體咀嚼系統。