基于WinCE的在線流媒體播放器的軟件設(shè)計(jì)
摘要:互聯(lián)網(wǎng)的迅猛發(fā)展和普及為流媒體業(yè)務(wù)發(fā)展提供了強(qiáng)大的市場(chǎng)動(dòng)力,流媒體業(yè)務(wù)正變得日益流行?;诖嗽O(shè)計(jì)了一個(gè)基于WinCE 6.O操作系統(tǒng)的在線流媒體播放軟件,運(yùn)用Visual Studio 2005開(kāi)發(fā)工具的DirectShow技術(shù)來(lái)開(kāi)發(fā)在線流媒體播放程序的具體方法和程序代碼。闡述了整個(gè)流媒體播放程序的實(shí)現(xiàn)流程,真正實(shí)現(xiàn)了在線流媒體播放。
關(guān)鍵詞:DirectShow;WinCE 6.0;流媒體
0 引言
多媒體終端是一種以播放多媒體文件為其主要功能的消費(fèi)類電子產(chǎn)品,其中的多媒體文件包括音頻、視頻、FLASH動(dòng)畫、圖片等。而且,在此基礎(chǔ)之上,多媒體終端可以擴(kuò)展諸如視頻錄制、攝像/照相、數(shù)碼相冊(cè)、收音機(jī)、電子書、游戲、上網(wǎng)等豐富的功能,成為一種個(gè)人信息和娛樂(lè)的便攜式設(shè)備。便攜式媒體播放器(Portable Media Player,PMP)、智能手機(jī)(Smart Phone)、個(gè)人數(shù)字助理(PDA)等都是典型的多媒體終端設(shè)備。本文主要論述了如何在基于WinCE操作系統(tǒng)的智能設(shè)備上利用DirectShow技術(shù)實(shí)現(xiàn)流媒體的播放,并給出了測(cè)試結(jié)果。
1 DirectShow簡(jiǎn)介
DirectShow是DirectX開(kāi)發(fā)包中關(guān)于流媒體處理的一個(gè)開(kāi)發(fā)包,這個(gè)開(kāi)發(fā)包可以進(jìn)行音頻和視頻的捕捉,使用它可以開(kāi)發(fā)DVD應(yīng)用程序和數(shù)字TV應(yīng)用程序。DirectShow支持的媒體文件主要有WMA、MOV、MPG、AVI、MP3、WAV、WMV等,無(wú)論是讀取媒體文件還是將捕捉的數(shù)據(jù)寫入到媒體文件,DirectShow開(kāi)發(fā)包都能提供很好的技術(shù)支持。
DirectShow技術(shù)利用標(biāo)準(zhǔn)組件來(lái)處理流媒體數(shù)據(jù),這些組件稱為過(guò)濾器。過(guò)濾器帶有輸入和輸出針角,或二者兼而有之。在DirectShow技術(shù)中處于最核心位置的就是作為“過(guò)濾器”的可插入標(biāo)準(zhǔn)組件,它是執(zhí)行特定任務(wù)的COM對(duì)象。過(guò)濾器又分為源過(guò)濾器(souroe filter)、變換過(guò)濾器(Trans form filter)和表現(xiàn)過(guò)濾器(Render filter)等。過(guò)濾器通過(guò)向文件讀寫、修改數(shù)據(jù)和顯示數(shù)據(jù)到輸出設(shè)備上來(lái)操作流媒
體。為了完成整個(gè)任務(wù)。必須要將所有過(guò)濾器Filter連接起來(lái),這3種過(guò)濾器組成了過(guò)濾器圖表結(jié)構(gòu),如圖1所示。
2 DirectShow技術(shù)開(kāi)發(fā)準(zhǔn)備
DirectShow組件在“C:\WINDOWS\system32”目錄下的Quartz.dll動(dòng)態(tài)庫(kù)中,要使C#代碼引用COM對(duì)象和接口,必須將COM類型庫(kù)轉(zhuǎn)換為.NET框架元數(shù)據(jù),從而有效地創(chuàng)建一個(gè)可以從任何托管語(yǔ)言調(diào)用的托管包裝。在轉(zhuǎn)換過(guò)程中需要使用FrameWork SDK自帶的TlbImp命令工具,該命令工具在“E:\Program Files\Microsoft Visual Studio 8\SDK\v2.O\Bin\TlbImp.exe”目錄下(取決于Visual Studio 2005的安裝路徑)。該命令的使用方法為:TlbImp C:\WINDOWS\system32\quartz.dll out:QuarteTypeLib.dll在DOS命令下執(zhí)行轉(zhuǎn)換成功。
評(píng)論