摘要:該文對(duì)B/S結(jié)構(gòu)下視頻點(diǎn)播系統(tǒng)中客戶端的播放技術(shù)進(jìn)行了探索,根據(jù)實(shí)際應(yīng)用中的需求,分析了嵌入式播放的優(yōu)點(diǎn);最后詳細(xì)介紹了如何利用RealPlayer提供的ActiveX控件來實(shí)現(xiàn)具體的嵌入式播放。
關(guān)鍵詞:視頻點(diǎn)播;嵌入式播放;RealPlayer;B/S
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)14-3783-02
Realization of Embedded Presentation in VoD System Base on B/S Structure
XU Cheng-fei
(Department of Computer, Shaoxing University, Shaoxing 312000, China)
Abstract: The paper studies the client presentation technology in VoD system base on B/S structure, analyses the advancement of embedded presentations according to the demands of application; finally introduces the realization of embedded presentations using the ActiveX control provided by RealPlayer.
Key words: VoD; Embedded Presentations; RealPlayer; B/S
1 引言
視頻點(diǎn)播,即VoD (Video On Demand),是指按需服務(wù)的視頻流播放。VoD技術(shù)使人們可以根據(jù)自己的興趣,不用借助錄像機(jī)、影碟機(jī)、有線電視而在電腦或電視上自由地點(diǎn)播節(jié)目庫(kù)中的視頻節(jié)目和信息,是可以對(duì)視頻節(jié)目?jī)?nèi)容進(jìn)行自由選擇的交互式系統(tǒng)。視頻點(diǎn)播的應(yīng)用,豐富了人們的工作、學(xué)習(xí)和文化生活,拓寬了流媒體應(yīng)用的范圍。隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及以及流媒體技術(shù)的發(fā)展,在寬帶網(wǎng)絡(luò)上實(shí)現(xiàn)高質(zhì)量視頻點(diǎn)播已成為新的發(fā)展趨勢(shì)。
基于B/S結(jié)構(gòu)的視頻點(diǎn)播系統(tǒng)的工作原理是當(dāng)客戶機(jī)需要點(diǎn)播節(jié)目時(shí),首先使用瀏覽器訪問Web服務(wù)器,由Web服務(wù)器返回節(jié)目的URL,然后客戶機(jī)啟動(dòng)媒體播放器,按照獲得的節(jié)目URL發(fā)起請(qǐng)求,流媒體服務(wù)器接受請(qǐng)求并發(fā)送流媒體數(shù)據(jù),最后在客戶機(jī)的媒體播放器上進(jìn)行播放,完成一次視頻點(diǎn)播過程。其中在客戶端如何實(shí)現(xiàn)媒體數(shù)據(jù)的連接和完美播放是整個(gè)系統(tǒng)的重要一環(huán)。
2 客戶端播放方式的分析
在本系統(tǒng)中采用了Helix Server作為視頻服務(wù)器軟件。所以相應(yīng)的在客戶端采用了Real System公司的RealPlayer作為視頻文件的播放工具;RealPlayer支持當(dāng)今絕大多數(shù)的音/視頻流媒體格式,包括當(dāng)前流行的MP3等音頻媒質(zhì);同時(shí),RealPlayer 默認(rèn)的.rm格式在保證播放質(zhì)量的同時(shí),文件壓縮比高,使其更利于網(wǎng)絡(luò)傳輸。
一般而言,安裝好RealPlayer之后,有兩種方式可供選擇來連接視頻文件。一種是直接在Web頁(yè)面上提供視頻文件的URL地址,當(dāng)用戶點(diǎn)擊鏈接時(shí),RealPlayer自動(dòng)識(shí)別運(yùn)行,進(jìn)行實(shí)時(shí)連接播放;第二種方法是通過ActiveX控件方式在Web頁(yè)面中嵌入RealPlayer對(duì)象,對(duì)于用戶來說,就像在網(wǎng)頁(yè)上播放視頻節(jié)目,從而為視頻播放提供了一個(gè)統(tǒng)一的友好界面。
第一種方法對(duì)于設(shè)計(jì)者來說相對(duì)比較簡(jiǎn)單,只需要提供視頻文件的播放路徑。但是在客戶端必須使用RealPlayer播放界面,受系統(tǒng)限制較大。
第二種方法就是嵌入式播放,相比于前一種播放方式,它的優(yōu)點(diǎn)非常明顯:
1) 不需要系統(tǒng)進(jìn)行文件關(guān)聯(lián)。第一種方法中,如果文件關(guān)聯(lián)出錯(cuò),瀏覽器將無所適從,而嵌入式播放不存在這種問題。
2) 更好的中文支持。支持文件或文件夾中出現(xiàn)中文字符。
3) 可以按照設(shè)計(jì)者的意愿定制出精美大方的播放界面。對(duì)于用戶來說隱藏了具體的播放軟件,使界面更統(tǒng)一,更個(gè)性化。
3 嵌入式播放的實(shí)現(xiàn)
Real system已經(jīng)提供了一個(gè)ActiveX控件可以直接在Web頁(yè)面中嵌入RealPlayer對(duì)象。在設(shè)計(jì)網(wǎng)頁(yè)時(shí)只要利用
< OBJECT >是Microsoft在IE4.0之后推出的,用來替代< EMBED >標(biāo)簽的對(duì)象定義標(biāo)簽,通過CLASSID屬性定義相應(yīng)的對(duì)象類型。< EMBED >標(biāo)簽是Netscape瀏覽器支持的對(duì)象定義標(biāo)簽。CLASSID屬性可以在注冊(cè)表或其他參考資源中查找, RealPlayer控件的CLASSID是CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA。CLASSID的信息必須正確無誤,它告訴瀏覽器到哪里尋找RealPlayer播放器并自動(dòng)下載該播放器。主要代碼如下:
此外,CONTROLS參數(shù)用來指定播放器的控件外觀,它可以用多個(gè)控件進(jìn)行組合,在這個(gè)例子中指定了播放界面和控制面板。如果需要還可以利用各種參數(shù)詳細(xì)定制你自己的播放界面;示例如下:
//定義狀態(tài)欄
//定義控制面板
但是使用這種方式,還有一個(gè)問題,就是每一個(gè)標(biāo)簽嵌入一個(gè)控件,在客戶端表現(xiàn)為一個(gè)播放窗口,但是一個(gè)只對(duì)應(yīng)一個(gè)超鏈接,也就是說每一個(gè)超鏈接對(duì)應(yīng)一個(gè)播放窗口,頁(yè)面上有多少個(gè)超鏈接就相應(yīng)有多少個(gè)播放窗口。當(dāng)我們點(diǎn)擊多個(gè)鏈接時(shí),頁(yè)面上就會(huì)彈出很多個(gè)播放窗口。而我們希望達(dá)到的效果是所有的視頻鏈接都定位在一個(gè)窗口進(jìn)行播放。對(duì)于這個(gè)問題,我們采取了自定義函數(shù),利用JavaScript 代碼在一個(gè)固定的窗口內(nèi)來控制視頻的播放。其中函數(shù)如下: