基于Mobile的手機(jī)流媒體實時圖像瀏覽客戶端的軟件設(shè)計
3.3.2 新建一個CEric-MediaControl 類,用于封閉媒體文件播放等功能
CEricMediaControl 類是一個通用的C++ 類,無基類。
下面就來具體實現(xiàn)CEricMediaControl 類。
a.為CEricMediaControl 類添加私有變量,用于定義播放媒體文件播放所需的DSHOW接口。
b.定義媒體播放事件對應(yīng)的WINDOWS 消息常量WM_GRAPHNOTIFY,定義如下:#define WM_GRAPHNOTIFYWM_USER + 101。
c.實現(xiàn)CEricMediaControl 類的構(gòu)造函數(shù)和析構(gòu)函數(shù)。在構(gòu)造函數(shù)里,將DSHOW相關(guān)的接口初始化為NULL,并初始化COM環(huán)境;在析構(gòu)函數(shù)里,釋放DSHOW 接口并釋放COM環(huán)境。
d.為CEricMediaControl 類添加InitDShow和UnInitDShow兩個私有方法。
e.為CEricMediaControl 類添加4 個共有方法,供外部調(diào)用。這4 個方法分別為OpenFile、VideoRun、VideoPause、VideoStop。f. 為類CEricMediaControl類添加7 個共有的方法,用于設(shè)置媒體播放屬性以及得到媒體播放器的屬性。這7個方法分別為FitVideoWindow、FullScreen、Get-FullScreenStatus、GetMediaEvent、SetPositions、GetDuration。
3.3.3 設(shè)計媒體播放器的主窗口
根據(jù)媒體播放器上的樣式,對話框上的控件及其屬性設(shè)置如表1 所示。
至此,媒體播放器就編寫完成了,編譯并部署到模擬器中,即可實現(xiàn)流媒體實時圖像的瀏覽了,同時可以作為本地媒體播放器使用,通過“打開”按鈕選擇播放本地媒體文件。
4 結(jié)語
隨著手機(jī)市場的不斷增長和3G 網(wǎng)絡(luò)業(yè)務(wù)的快速發(fā)展,針對智能手機(jī)音/ 視頻圖像的傳輸,本文通過流媒體技術(shù)以及網(wǎng)絡(luò)編程的研究,實現(xiàn)了在Mobile 操作系統(tǒng)下實時圖像的傳輸及瀏覽。這個實時流媒體傳輸系統(tǒng)經(jīng)過進(jìn)一步完善后,將可以推廣到更多場合中,得到更多的應(yīng)用,例如:視頻會議、遠(yuǎn)程教學(xué)等,具有實際應(yīng)用價值。
評論