互聯網開(kāi)發&品牌全案設計(jì)

12年(nián) 實戰經驗,品質服務

如(rú)何在網頁中播放(fàng)ASF流媒體(tǐ)文(wén)件(jiàn)

2012-08-16 關鍵詞: 2795

Windows Media流媒體(tǐ)可(kě)以通(tōng)過MMS協議(yì)或HTTP協議(yì),在Wi→ndows Media Player中或在網頁中嵌入相(xiàng)應ActiveX進行(xíng)播放(fàng),我們主要(yào)討(tǎo)論在網頁中播>放(fàng)ASF流媒體(tǐ)文(wén)件(jiàn)的(de)方法,這(zhè)在網絡教育中更有(yǒu)普遍意義。

1. 在網頁中播放(fàng)ASF流媒體(tǐ)文(wén)件(jiàn)的(de)原理(lǐ) 
   在網頁中播放(fàng)ASF流媒體(tǐ)文(wén)件(jiàn)就(jiù)是(shì)在網頁中嵌入Windows Media Player ActiveX控件(ji§àn),通(tōng)過此控件(jiàn)進行(xíng)ASF文(wén)件(jiàn)的(de)播放(fàng)。以下(xià)是(shì)插入此控件(jiàn)的(de)HTML代碼。
<OBJECT ID="WMPlay" width=320 height=240 classid="CLSID:22D6F3∞12-B0F6-11D0-94AB-0080C74C7E95" 
codebase="http://activex.microsoft.com/activex/controls/mplayer/en
/nsmp2inf.cab#Version=5,1,52,701"
standby="Loading Microsoft Windows Media Player c♠omponents..." type="application/x-oleobject&qu≥ot;>
<PARAM name="FileName" value="/bk/sλizhongblog/demo.asf">
<PARAM name="DisplaySize" value="0&♣quot;>
<EMBED type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/isapi/redir.dll?
prd=windows&sbp=mediaplayer&ar=media&sba=plugin"
filename="demo.asf"
displaysize="0"
name="WMPlay"
width=320 height=240
></EMBED>
</OBJECT>
其中<object>标簽和(hé)<embed>标簽的(de)嵌套使用(yòng)是(shì)為(wèi)解決IE與Netscape浏覽器(qì)的β(de)兼容性問(wèn)題。在<object>标簽中,classid指出了(le)Windows€ Media Player ActiveX控件(jiàn)的(de)版本;ID用(yòng)于在網頁中給這(zhè)個(gè)控件(jiàn)命名,以便在網頁中使用(yòng)腳₽本(如(rú)javascript)對(duì)其進行(xíng)調用(yòng)(在<embed>标簽中使用(yòng)的(de)是(sh£ì)name);width和(hé) height用(yòng)于設定播放(fàng)時(shí)整個(gè)顯示區(qū)域的(de)尺寸,PARAM用(yòng)于設定控件(jià₹n)的(de)屬性,例如(rú)name指出屬性的(de)名稱,相(xiàng)應value則設定其屬性值。
特别要(yào)注意的(de)是(shì):設定播放(fàng)的(de)文(wén)件(jiàn)名屬性時(shí),通(tōng)常是(shì)指向ASX文(wén)件(j₩iàn),而并非直接指向ASF文(wén)件(jiàn)。這(zhè)是(shì)因為(wèi)ASX文(wén)件(jiàn)是(shì)meta文(wén)件(jiàn)。在 使用(yòng)Windows Media 服務功能(néng)來(lái)加強流媒體(tǐ)傳輸性能(néng)時(shí),必須使用(yòng)此ASX文(wén)件(jià♥n)(詳見(jiàn)文(wén)後的(de)討(tǎo)論),而不(bù)使用(yòng)Windows Media 服務功能(néng∏)時(shí)也(yě)可(kě)使用(yòng)ASX文(wén)件(jiàn)來(lái)對(duì)ASF文(wén)件(jiàn)定向,因此此處應将文(wénδ)件(jiàn)名屬性指定為(wèi)ASX文(wén)件(jiàn),這(zhè)樣可(kě)在今後對(duì)流媒體(tǐ)的(de)播放(fàng)方式上(shàng)有(yǒu)變∞化(huà)時(shí)不(bù)必修改網頁。
使用(yòng)Windows Media 服務功能(néng)時(shí)的(de)ASX文(wén)件(σjiàn)內(nèi)容是(shì)在設置單播點時(shí)由Windows Media 管理(lǐ)器(qì)自(zì)動生(shēng)成的(de):÷
<asx version = "3.0">
<title>hly</title>
<entry>
<ref href = "mms://server/video/hly.asf"';/>
</entry>
</asx>
此時(shí)使用(yòng)MMS協議(yì)傳輸流媒體(tǐ),其中server是(shì)服務器(qì)名稱,video是(shì)單播發布點别名。
不(bù)使用(yòng)Windows Media 服務功能(néng)時(shí)ASX文(wén)件(jiàn)內(nèi)容可(kě)這(zhè)樣編輯:
<asx version = "3.0">
<title>hly</title>
<entry>
<ref href = "hly.asf"/>
</entry>
</asx>
2.播放(fàng)ASF流媒體(tǐ)文(wén)件(jiàn)控制(zhì)其它網頁的(de)浏覽•
    在播放(fàng)ASF流媒體(tǐ)文(wén)件(jiàn)時(shí),在指定的(de)時(sπhí)刻顯示相(xiàng)應的(de)其它的(de)網頁,這(zhè)是(shì)網絡教育常用(yòng)的(de)技(jìλ)術(shù)手段。其技(jì)術(shù)要(yào)點是(shì):在網頁上(shàng)設計(jì)一(yī)個(gè)左右分(fēn)幀的(de)框架結構,将這(zh↕è)兩個(gè)幀按意義命名,例如(rú)将左邊的(de)幀命名為(wèi)video,右邊顯示相(xiàng)應網頁的(de)幀命名為(wèi)content。注意這(zhè)裡(lǐ)的←(de)命名應與在ASF文(wén)件(jiàn)中插入的(de)URL信息相(xiàng)一(yī)緻。這(zhè)樣,當左邊的(de)幀在播放φ(fàng)插入URL信息的(de)ASF流媒體(tǐ)文(wén)件(jiàn)時(shí),在相(xiàng)應×的(de)時(shí)刻就(jiù)會(huì)在右邊的(de)幀中顯示有(yǒu)關的(de)網頁。
3.用(yòng)超文(wén)本鏈接控制(zhì)ASF流媒體(tǐ)文(wén)件(jiàn)播放(fàng)的(de)跳(tiào)轉
    用(yòng)超文(wén)本鏈接可(kě)以控制(zhì)ASF流媒體(tǐ)文(wén)件(jiàn)播放(fàng)的(de)跳(tiào)轉,實現(x"iàn)相(xiàng)關知(zhī)識點的(de)快(kuài)速搜索。其技(jì)術(shù)要(yào)點是(shì) :在ASF文(wén)件(jiàn)中插入相(xiàn↑g)應的(de)時(shí)間(jiān)點标記。在播放(fàng)ASF視(shì)頻(pín)的(de)網頁中用(yòng)<a href=@"#">✔;為(wèi)相(xiàng)應的(de)文(wén)字建立空(kōng)超文(wén)本鏈接,并用(yòng)onclick事(shì)件(jiàn)控制(zhì)Wi♠ndows Media Player ActiveX插件(jiàn)的(de)CurrentMarker屬性,具體(tǐ)代碼為(wè✔i)<a herf="#"onclick="WMPlay.CurrentMarker='1' ">其中WMPlay是(shì)插件(jiàn)•的(de)ID和(hé)name。此行(xíng)代碼的(de)意義是(shì)讓控件(jiàn)跳(tiào)至第一(yī)個(gè)時(shí)間(jiān)÷點标記處。當然也(yě)可(kě)對(duì)圖像采用(yòng)相(xiàng)同的(de)方法控制(zhì)$視(shì)頻(pín)的(de)跳(tiào)轉。
4.用(yòng)ASF流媒體(tǐ)控制(zhì)Flash動畫(huà)的(de)播放(fàng)
    用(yòng)Flash動畫(huà)配合視(shì)頻(pín)播放(fàng),對(duì)視(shì)頻(pín)中不(bù)能☆(néng)直接顯示的(de)教學內(nèi)容作(zuò)深入的(de)表達,這(zhè)對(duì)網絡教學是(shì)十分(fēn)重要(yào)γ的(de)一(yī)種技(jì)術(shù)。[4]其技(jì)術(shù)要(yào)點是(shì):在ASF流媒體δ(tǐ)文(wén)件(jiàn)中相(xiàng)應需要(yào)控制(zhì)Flash動畫(huà)的(de)時(shí)間(jiān)處插入φ文(wén)本類型的(de)腳本命令,如(rú)play、pause、stop(分(fēn)别用(yòng)于F÷lash動畫(huà)的(de)播放(fàng)、暫停、停止)。在網頁的(de)<head></head>标簽之間(jiān)添加下(xià)列代碼:
<script LANGUAGE="javascript" FOR="WMPlay" EVENT="Sc riptCommand(ScType, ScCmd)">
if (ScType =="TEXT"){
if (ScCmd=="play"){flash.Play()};
if (ScCmd=="pause"){flash.Stop()};
if (ScCmd=="stop"){flash.Stop();flash.Rewind()};
}
</script>
其中“WMPlay”是(shì)播放(fàng)ASF流媒體(tǐ)文(wén)件(jiàn)的(de)控件(jiàn)ID,函數(shù)ScriptCom¶mand的(de)參數(shù)ScType是(shì)腳本類型。ScCmd是(shì)腳本命令,條件(jiàn)語句根據腳本命令調用(yòng)¥Flash動畫(huà)播放(fàng)器(qì)控件(jiàn)的(de)相(xiàng)應的(de)方法,對(duì)Flash動畫(huà)₩進行(xíng)控制(zhì)。注意Falsh.Play()等調用(yòng)方法命令中的(de)Flash是(shì)Flash動畫(huà)播放(fàng)器(qì)控件(jiàn∑)的(de)ID和(hé)name。
5.自(zì)定義按鈕控制(zhì)ASF流媒體(tǐ)文(wén)件(jiàn)的(de)播放(fàng)。
    在網頁上(shàng)用(yòng)Windows Media Playwer ActiveX控件(jiàn)播放(f¶àng)ASF流媒體(tǐ)文(wén)件(jiàn)時(shí),設置其屬性Controller="true",使$控件(jiàn)顯示控制(zhì)條,用(yòng)戶可(kě)用(yòng)此控制(zhì)條控制(zhì)ASF流媒體(tǐ)文(wén)件(jiàn)的(de)播放(fàng‌)。但(dàn)由于控件(jiàn)的(de)控制(zhì)條的(de)形式單一(yī),缺少(shǎo)個(gè)性,我們通(tōng)常需™要(yào)根據ASF流媒體(tǐ)播放(fàng)的(de)控制(zhì)需求和(hé)網絡課程的(de)藝術(shù)設計(jì),在網頁中設計(jì)一(yī)些(xiē)自(zì>)定義按鈕用(yòng)于控制(zhì)播放(fàng)視(shì)頻(pín)(同時(shí)應設置控件(jià<n)屬性<PARAM name="controller" value="false">,将控制(zhì)條關閉)。這(zh è)樣既可(kě)靈活控制(zhì)視(shì)頻(pín)的(de)播放(fàng),又(yòu)有(yǒu)整體(tǐ)的(de)藝術(shù)性。其技(jì)術(shù)要(yào)點是(γshì):在網頁中适當的(de)位置插入自(zì)定義按鈕圖像(或者插入交替按鈕圖像),為(wèi)其設定空(kōng)的(de)超文(wén)本鏈接,這(zhè)樣∑在浏覽中當鼠标指向按鈕時(shí)将出現(xiàn)手形光(guāng)标。通(tōng)過按鈕行(xíng)為(wèi)調用(yòng)控件(jiàn)中相σ(xiàng)關的(de)方法,從(cóng)而控制(zhì)ASF流媒體(tǐ)文(wén)件(jiàn)的(de)播↑放(fàng),有(yǒu)關的(de)代碼如(rú)下(xià):<a href=@"#"><img title="p↔lay" src=@"/bk/sizhongblog/images/play.gi÷f" onclick="WMPlay.play()" width="20" height =& quot;20"></a>其中“WMPlay”是(shì)播放(fàng)λASF流媒體(tǐ)文(wén)件(jiàn)的(de)控件(jiàn)ID。
欄目 案例 售後 電(diàn)話(huà)