基于Mobile的手機流媒體實(shí)時(shí)圖像瀏覽客戶(hù)端設計
1 引言
本文引用地址:http://dyxdggzs.com/article/150164.htm當今社會(huì ),僅僅傳輸文字和圖像信息已經(jīng)不能滿(mǎn)足現代社會(huì )發(fā)展的需要,音頻和視頻的多媒體信息成為網(wǎng)絡(luò )上重要的傳輸內容。同時(shí)微軟憑借其強大的研發(fā)實(shí)力和市場(chǎng)推廣能力,使得Windows Mobile 操作系統及其開(kāi)發(fā)工具成為了主流的智能手機軟件開(kāi)發(fā)平臺。
2 系統的功能及總體結構
本文主要闡述基于Mobile 的手機流媒體實(shí)時(shí)圖像瀏覽客戶(hù)端的軟件設計,此軟件是通過(guò)軟件仿真實(shí)現的一個(gè)基于Windows Mobile的流媒體系統。流媒體要求能夠一邊收取網(wǎng)絡(luò )上的大量音視頻數據,將數據解碼,一邊還要進(jìn)行顯示。因此多媒體系統中的流媒體的功能包括:
?。?) 從網(wǎng)絡(luò )上接收數據包,收集傳來(lái)的各種數據和指令。
?。?) 對其進(jìn)行分析、處理,將數據進(jìn)行解碼以便交給設備進(jìn)行輸出。
?。?) 將從解碼模塊傳過(guò)來(lái)的處理后的數據通過(guò)播放器進(jìn)行顯示。
3 主要模塊的設計與實(shí)現
本文應用流媒體技術(shù)、網(wǎng)絡(luò )通信技術(shù)設計了一個(gè)基于智能手機的實(shí)時(shí)流媒體傳輸系統框架,并針對組成該系統的重要模塊進(jìn)行探討和研究?;赗TP/RTCP 協(xié)議的流媒體傳輸組件,實(shí)現了圖像瀏覽的網(wǎng)絡(luò )數據傳輸、解碼和顯示等功能,為以后開(kāi)發(fā)出有完善功能的應用系統作了鋪墊。
本系統中的實(shí)時(shí)流媒體圖像瀏覽需要包括如下模塊:網(wǎng)絡(luò )接收模塊、解碼模塊、顯示模塊、操作控制模塊,根據平臺的結構和工作原理,系統的工作流程如圖1 所示。
3.1 網(wǎng)絡(luò )接收模塊
本系統中設計了智能手機上的RTP 接收,針對智能手機處理速度的限制,在該模塊中設計了一個(gè)緩沖區用于平滑網(wǎng)絡(luò )上所接收的數據和智能手機處理速度之間的瓶頸。同時(shí)Mobile操作系統支持TCP/IP 協(xié)議,因此可以使用TCP/IP 協(xié)議進(jìn)行網(wǎng)絡(luò )方面的通信和圖像數據的傳輸。RTP 接收數據流程圖如圖2 所示。
3.2 解碼模塊
音/ 視頻以大量的數據進(jìn)行傳輸,可能會(huì )造成網(wǎng)絡(luò )堵塞。為了減少網(wǎng)絡(luò )傳輸量,那么在不會(huì )影響音視頻顯示效果的前提下,對數據進(jìn)行了壓縮和編碼處理,可以大大的減少數據量。因此,在接收到數據以后,對完整的音/ 視頻數據要進(jìn)行對應的解碼,才能使圖像正確無(wú)誤的顯示出來(lái)。
3.3 顯示模塊
本系統中采用Direct-Show技術(shù)來(lái)提供多媒體流高質(zhì)量的捕捉與回放。下面就本系統中終端播放器的具體功能和實(shí)現,設計如下:
3.3.1 建立項目
使用Visual STudio 2008 的開(kāi)發(fā)環(huán)境創(chuàng )建一個(gè)新項目,利用智能設備應用程序向導創(chuàng )建一個(gè)基于對話(huà)框的應用程序, 編譯環(huán)境設置為Windows Mobile 6 ProfessiONalSDK,設備選擇CHSWindows Mobile 6 ClassicEmulator 為智能設備的模擬環(huán)境。
3.3.2 新建一個(gè)CEric-MediaControl 類(lèi),用于封閉媒體文件播放等功能
CEricMediaControl 類(lèi)是一個(gè)通用的C++ 類(lèi),無(wú)基類(lèi)。
下面就來(lái)具體實(shí)現CEricMediaControl 類(lèi)。
a.為CEricMediaControl 類(lèi)添加私有變量,用于定義播放媒體文件播放所需的DSHOW接口。
b.定義媒體播放事件對應的WINDOWS 消息常量WM_GRAPHNOTIFY,定義如下:#define WM_GRAPHNOTIFYWM_USER + 101。
c.實(shí)現CEricMediaControl 類(lèi)的構造函數和析構函數。在構造函數里,將DSHOW相關(guān)的接口初始化為NULL,并初始化COM環(huán)境;在析構函數里,釋放DSHOW 接口并釋放COM環(huán)境。
d.為CEricMediaControl 類(lèi)添加InitDShow和UnInitDShow兩個(gè)私有方法。
e.為CEricMediaControl 類(lèi)添加4 個(gè)共有方法,供外部調用。這4 個(gè)方法分別為OpenFile、VideoRun、VideoPause、VideoStop。f. 為類(lèi)CEricMediaControl類(lèi)添加7 個(gè)共有的方法,用于設置媒體播放屬性以及得到媒體播放器的屬性。這7個(gè)方法分別為FitVideoWindow、FullScreen、Get-FullScreenStatus、GetMediaEvent、SetPositions、GetDuration。
3.3.3 設計媒體播放器的主窗口
根據媒體播放器上的樣式,對話(huà)框上的控件及其屬性設置如表1 所示。
至此,媒體播放器就編寫(xiě)完成了,編譯并部署到模擬器中,即可實(shí)現流媒體實(shí)時(shí)圖像的瀏覽了,同時(shí)可以作為本地媒體播放器使用,通過(guò)“打開(kāi)”按鈕選擇播放本地媒體文件。
4 結語(yǔ)
隨著(zhù)手機市場(chǎng)的不斷增長(cháng)和3G 網(wǎng)絡(luò )業(yè)務(wù)的快速發(fā)展,針對智能手機音/ 視頻圖像的傳輸,本文通過(guò)流媒體技術(shù)以及網(wǎng)絡(luò )編程的研究,實(shí)現了在Mobile 操作系統下實(shí)時(shí)圖像的傳輸及瀏覽。這個(gè)實(shí)時(shí)流媒體傳輸系統經(jīng)過(guò)進(jìn)一步完善后,將可以推廣到更多場(chǎng)合中,得到更多的應用,例如:視頻會(huì )議、遠程教學(xué)等,具有實(shí)際應用價(jià)值。
評論