[摘要] 本課題的重點是討論利用現在的J2ME,MPEG及相應的流媒體技術,開發出移動設備終端的媒體播放器。
[關鍵詞] 流媒體 J2ME MPEG RTP RTCP
一、引言
隨著通信技術和計算機技術的迅猛發展,3G時代的到來,使得人們對手持設備的應用有了更高的要求,人們已不滿足于簡單的通話,收發短信等基本功能,而更多的是要求有多媒體應用,能利用手機進行上網沖浪,3D游戲,播放視頻等。
二、系統的分析與設計
1.目前存在的系統分析
隨著通信技術和計算機技術的迅猛發展,使得人們對手持設備的應用有了更高的要求,人們已不滿足于簡單的通話,收發短信等基本功能,而更多的是要求有多媒體應用,能利用手機進行上網沖浪,3D游戲,播放視頻等。移動設備通過網絡觀看視頻將是不可避免的問題。而且目前的城市的網絡覆蓋率比較的好。
在這種情況下,多媒體播放器在設計與實現在有一些問題:
(1)由于多媒體手機在硬件性能上與PC機有著顯著的差異,所以在多媒體手機上播放的視頻短片的比特率要遠遠低于PC機上的,所以在設計多媒體手機時要受到多媒體手機硬件與操作系統的影響。
(2)現在多媒體手機外接的存儲卡容量不是很高,當你在旅行的過程中或者在移動的過程中,因為你的存儲卡的容量有限,所以你只能看少量的視音文件。
(3)現在多媒體手機在播放視音頻文件的過程中,如果你看到自已喜歡的圖片,你就想要保存下來,作為永久的珍藏。
(4)如何設計一項全新多媒體播放器,為將來的多媒體移動服務打下堅實的基礎。
2.對目前系統的改進
本項目是一個關于手機播放器的系統,通過移動終端手機能夠實現在任何時間,地點進行多媒體音頻與視頻的播放,本項目在空間上延伸了基于internet的網絡服務,在時間上更具有靈活性。本系統只能播放視頻文件的格式為MPEG格式與音頻文件的格式為WAV格式,這是因為由底層的開發包所決定的。
本項目具有以下幾個功能模塊:
(1)首先視頻(主要是MPEG格式)的播放模塊,播放形式主要采用兩種形式:本地播放與網絡播放。本地播放也就是所謂的視頻文件在本地手機存儲器里,直接進行播放,網絡播放主要是視頻文件放在網絡服務器,手機進行調用播放。它在空間上延伸了internet網絡服務,在時間上更具有靈活性。
(2)其次實現音頻(主要是WAV格式)的播放模塊,播放形式主要采用兩種形式:本地播放與網絡播放。運行方式與視頻播放模塊相似。
(3)再次抓圖模塊,在進行播放本地與網絡視頻時,當你認為哪一個視頻的瞬間你很鼓歡,你就可以進行抓圖,把它抓下來。
(4)最后是控制模塊,在進行播放音頻與視頻的同時,有一些基本的控制功能,比如:播放,停止,暫停,增加音量,減小音量等。
1>以下是本地播放視頻或音頻文件流程圖
以上圖的說明:這是一個本地播放視頻或音頻文件的流程圖,首先生成一個等待WaitCanvas的對象,之后生成一個等待界面,然后生成一個VideoCanvas對象,它主要是用來進行播放文件控制的,用VideoCanvas生成的對象來打開用戶在剛開始的界面上所輸入URL,URL里包括IP地址,端口號(8080)以及被訪問的文件名。如果打開成功都進行播放,如果失敗者結束程序。最終關閉MIDlet程序。
2>以下是網格播放視頻或音頻文件流程圖
以上圖的說明:這是一個網絡播放視頻或音頻文件的流程圖,首先生成一個等待WaitCanvas的對象,之后生成一個等待界面,然后生成一個VideoCanvas對象,它主要是用來進行播放文件控制的,用VideoCanvas生成的對象來打開用戶在剛開始的界面上所輸入URL,URL里包括IP地址,端口號(8080)以及被訪問的文件名。如果打開成功都進行播放,如果失敗者結束程序。最終關閉MIDlet程序。
三、客戶端的實現
手機客戶端MIDlet的設計是本課題研究的重點,是實現本地與無線播放器應用的關鍵,客戶端MIDlet需要解決的關鍵問題有:MIDlet程序結構流程控制,界面的開發;準確地提交用戶請求參數問題等。根據系統需求分析,本項目終端支持系統的客戶端主要面向的活動者是有具有多媒體手機的用戶。以多媒體手機的用戶所應具有的功能進行介紹手機客戶端MIDlet開發的過程和主要解決的問題。
1.客戶端流程設計
主要的流程說明:首先啟動MIDlet,進行輸入所要訪問的服務器的IP和所要播放的文件的全稱,如果輸入錯誤,都重新輸入,如果輸入正確者,進行下面的一個操作,機器根據你所輸入的IP地址來判斷是本地播放,還是要進行網絡的播放,當你如果輸入的是本地IP,那么手機只播放你在手機存儲介質里面的視頻或音頻文件。如果你輸入的是網絡IP,那么手機會播放在服務器中的視頻或音頻文件。在進行播放視頻與音頻的過程中,可以對被操作對象進行一系列的操作,比如抓圖等。
2.MIDLET主程序的設計
一個MIDP應用程序的基本執行單元——MIDlet,所以ControlVideo繼承MIDlet了,并有以下幾個方法:startApp(),pauseApp(),destroyApp(),commandAction()還有一個線程PlayImage,這個程序它所要實現在的主要功能是,形成一個輸入的界面,在這個界面里面要實現讓用戶輸入URL,URL里面包含訪問計算機的IP,端口號及所要訪問的播放文件全稱。還有在界面上還形成幾個按鈕比如開始,退出這是由commandAction()來進行控制等,它還進行控制整個程序的運行,選形成一個等待的界面,然后根據用戶所輸入的信息進行打開URL,再進行播放文件的控制等等。
3.播放控制的設計
它主要是由VideoCanvas繼承Canvas,并有以下幾個方法:VideoCanvas(), initialize(), paint(), time2pix(),open()等方法。它主要實現的功能是:對播放的視頻或音頻文件進行一系列的操作比如播放,停止,暫停,增加音量,減小音量。
4.播放文件判斷的設計
在這里主要是設計一個單獨的類,名稱為VideoType,它主要先從用戶輸入的URL來分析出用戶輸入的信息,從中分離出輸入的IP地址,端口號以及文件的名稱,再進行判別用戶輸入的文件的類型。它里面有以下幾個方法:guessContentType(),splitURL()。
5.網絡連接等待介面的設計
這是一個所設計的一個等待界面,名稱WaitCanvas,它繼承了Canvas類,它主要的功能是:當用戶輸入IP地址時,手機在連結服務器的時候,可能會有一個過程,所以這個時候出現一個等待界面。它里面有以下幾個方法:WaitCanvas(),void setMessage(),paint()。
四、結束語
本文研究的重心在于利用流媒體技術使手機播放器中本地與網絡(無線)終端MIDP應用開發技術的解決方法及資源的網絡通信,信息整合問題。因此在論文中深入研究了J2ME體系結構及其平臺下手機程序MIDP的開發技術,詳細分析了本地終端與無線終端和資源的通信解決方法,并構造了一個手機多媒體播放器系統,通過該系統,完整說明了MIDP應用程序開發的流程控制,界面設置與流媒體和視頻壓縮技術。本系統還會不斷的改進,實現更廣,更新,更實際的功能,以適應時代的需求。
參考文獻:
[1]吳一丁:J2ME技術在移動設備上的應用.java研究組織,2005
[2]黃寶雄:流媒體技術.中國多媒體視訊,2005
[3]劉雄武:移動流媒體技術及其應用發展方向.CSDN,2005.06
[4]王千祥:應用服務器原理與實現.電子工業出版社,2003