當(dāng)前位置:首頁(yè)>>軟件教程>>新聞內(nèi)容  
在Web頁(yè)中使用Media Player
作者:佚名 發(fā)布時(shí)間:2003-12-5 11:11:59 | 【字體:

在Web頁(yè)中嵌入Media Player的方法比較簡(jiǎn)單,只要用HTML中的<Object></Object>可以了,如下所示。

<OBJECT ID="WMPlay" WIDTH=320 HEIGHT=240
CLASSID="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"
CODEBASE="
http://activex.microsoft.com/activex/controls/mplayer/en/
nsmp2inf.cab#Version=6,4,5,715"
STANDBY="Loading Microsoft? Windows Media? Player components..."
TYPE="application/x-oleobject">
</OBJECT>

其中ID是對(duì)象的名稱,當(dāng)用戶在JavaScript要對(duì)Media Player進(jìn)行控制時(shí)可以用該對(duì)象的名稱WMPlay進(jìn)行訪問。CODEBASE指明當(dāng)用戶的瀏覽器中沒有安裝Player控件時(shí)可以從該URL指定的位置去獲取。
當(dāng)然在建立Player對(duì)象時(shí)也可以用<PARAM >來為其指定參數(shù)。如下所示:

<PARAM NAME="FileName" VALUE="C:ASFRootWelcome.asf">
<PARAM NAME="ShowControls" VALUE="False">
<PARAM NAME="AutoRewind" VALUE="True">
<PARAM NAME="AutoStart" VALUE="False">


其中"FileName"參數(shù)表示Media Player要播放的文件活或流。"ShowControls"表示在播放時(shí)是否顯示控制條。Media Player的參數(shù)很多,我們?cè)诖瞬辉僖灰辉斒觥Wx者如果需要了解更詳細(xì)的內(nèi)容可以參考Media Player SDK中的相關(guān)部分。
如果用戶需要對(duì)Media Player進(jìn)行控制可以用JavaScript進(jìn)行控制。

在這個(gè)例子中,Media Player嵌入在Web頁(yè)面中,在Media Player右邊有一些按鈕,利用這些按鈕用戶可以控制Media Player的播放活動(dòng)。這些按鈕的HTML代碼如下:

<form name="myform">
<input type="button" width="15" value="No Controls " name="NoControls"
OnClick="controlType(false)">
<input type="button" width="15" value="All Controls" name="Full"
Onclick="controlType(true)">
<input type="button" width="15" value=" Small " name="Small"
OnClick="displaySize(1)">
<input type="button" value=" Large " name="Large"
Onclick="displaySize(2)">
<input type="button" width="15" value=" Normal " name="Normal"
Onclick="displaySize(0)">
<input type="button" width="15" value=" Play " name="Play"
Onclick="PlayClick()">
<input type="button" width="15" value=" Stop " name="Stop"
Onclick="StopClick()">
</form>


相應(yīng)的JavaScript代碼為:

<script language="javascript">
<!--
var g_Browser = navigator.appName;
function controlType (setting)
{
if (g_Browser == "Netscape")
document.WMPlay.SetShowControls(setting);
else
document.WMPlay.ShowControls = setting;
}
function displaySize (setting)
{
if (g_Browser == "Netscape")
document.WMPlay.SetDisplaySize(setting);
else
document.WMPlay.DisplaySize = setting;
}
function PlayClick ()
{
document.WMPlay.Play();
}
function StopClick ()
{
document.WMPlay.Stop();
if (g_Browser == "Netscape")
document.WMPlay.SetCurrentPosition(0);
else
document.WMPlay.CurrentPosition = 0;
}
function PauseClick ()
{
document.WMPlay.Pause();
}
function PlayPauseClick ()
{
var state;
if (g_Browser == "Netscape")
state = document.WMPlay.GetPlayState();
else
state = document.WMPlay.PlayState;
if (state == 0)
document.WMPlay.Play();
else if (state == 1)
document.WMPlay.Play();
else if (state == 2)
document.WMPlay.Pause();

}
//-->
</script>


從這個(gè)例子可以看出當(dāng)用戶單即其中的某個(gè)按鈕時(shí),它對(duì)應(yīng)的OnClick函數(shù)將被調(diào)用。在JavaScript函數(shù)中,可以直接用WMPlay來控制播放器的活動(dòng),比如開始播放,停止播放或占停播放,以及放大縮小等。
除了可以用動(dòng)作比如鼠標(biāo)的動(dòng)作來對(duì)嵌入的Media Player進(jìn)行控制外,還可以利用事件來對(duì)其進(jìn)行控制。Microsoft? Windows Media? Player 支持的事件很多,有普通的鼠標(biāo)事件,比如鼠標(biāo)的單擊、雙擊、鼠標(biāo)的移動(dòng)、鼠標(biāo)鍵的按下與松開等,也有一些是Media Player特有的事件。與流播放有直接關(guān)系的事件有:OpenStateChange,PlayStateChange,Buffering,MarkerHit,ScriptCommand等。下面我們對(duì)這幾個(gè)重要的事件做簡(jiǎn)單地介紹。

1 OpenStateChange 事件
OpenStateChange 事件表示Player的狀態(tài)已經(jīng)發(fā)生了改變。Media Player的打開狀態(tài)有:
0 表示流已經(jīng)關(guān)閉(nsClosed)
1 表示正在裝入ASX文件(nsLoadingASX)
2 表示正在裝入NSC文件(nsLoadingNSC)
3 表示正在尋找Media Server (nsLocating)
4 表示正在與Media Server建立連接(nsConnecting)
5 表示正在打開或偵聽流信息(nsOpening)
6 表示流信息已經(jīng)打開(nsOpen)
用JavaScript處理OpenStateChange事件的格式如下:

<SCRIPT FOR="MediaPlayer" EVENT="OpenStateChange(lOldState, lNewState)"
LANGUAGE="JScript">
//insert script commands//
</SCRIPT>


其中MediaPlayer是在<OBJECT></OBJECT>中定義的Media Player對(duì)象時(shí)的名字。

2 PlayStateChange 事件
PlayStateChange 事件表示Media Player的播放狀態(tài)已經(jīng)改變,Media Player可能的狀態(tài)有:
0 播放已經(jīng)停止(mpStopped)
1 播放暫停(mpPaused )
2 正在播放(mpPlaying)
3 正在等待流開始(mpWaiting)
4 向前搜索(mpScanForward)
5 向后搜索(mpScanReverse)
6 向前跳躍(mpSkipForward)
7 向后跳躍(mpSkipReverse)
8 流已經(jīng)關(guān)閉(mpClosed)
用JavaScript處理該事件的方法為:

<SCRIPT FOR="MediaPlayer" EVENT="PlayStateChange(lOldState, lNewState)"
LANGUAGE="JScript">
//insert script commands//
</SCRIPT>


3 Buffering 事件
Buffering事件表示Media Player正在緩沖數(shù)據(jù)準(zhǔn)備播放。在進(jìn)行流播放之前,Media Player必須要緩沖一定數(shù)量的數(shù)據(jù)之后才開始播放,Buffering事件反映了Player緩沖數(shù)據(jù)的狀況。用JavaScript處理Buffering事件的方法為:

<SCRIPT FOR="MediaPlayer" EVENT="Buffering(bStart)" LANGUAGE="JScript">
//insert script commands//
</SCRIPT>


其中bStart為一個(gè)布爾變量,當(dāng)它為TRUE時(shí)表示緩沖正在進(jìn)行,反之表示緩沖已經(jīng)結(jié)束。

4 ScriptCommand 事件
ScriptCommand事件表示Media Player接收到了Script 命令,這時(shí)用戶可以利用對(duì)接收到Script命令進(jìn)行分析以決定采取相應(yīng)的處理。我們知道利用Media Tools的ASF Indexer工具可以給流添加Script命令,當(dāng)流播放器Player接收到這些Script 命令時(shí)會(huì)激活這個(gè)事件處理方法,于是用戶可以在事件處理方法中對(duì)Script命令進(jìn)行處理。處理ScriptCommand的方法是:

<SCRIPT FOR="MediaPlayer" EVENT="ScriptCommand(sType, sParam)"
LANGUAGE="JScript">
//insert script commands//
</SCRIPT>


其中sType是Script命令的類型,Script命令的類型有URL,TEXT,EVENT等,用戶可以根據(jù)Script命令類型的不同做不同的處理。比如,如果是URL命令,我們可以在指定的幀內(nèi)打開sParam中指定的頁(yè)面。

5 MarkHit 事件
MarkerHit事件同ScritpCommand事件一樣,當(dāng)媒體播放器在ASF流中遇到標(biāo)記時(shí)會(huì)激活該事件,用戶利用該事件可以知道當(dāng)前的標(biāo)記是第幾個(gè)標(biāo)記。MarkerHit事件的處理方法是:

<SCRIPT FOR="MediaPlayer" EVENT="MarkerHit(lMarkerNum)" LANGUAGE="JScript">
//insert script commands//
</SCRIPT>


當(dāng)然,除了支持事件處理之外,做為一個(gè)ActiveX對(duì)象,Media Player還有很多的屬性(Property)和方法(Method)可以供Web頁(yè)使用。比如用MediaPlayer.MarkerCount 屬性可以知道在ASF流中到底有多少個(gè)標(biāo)記;利用MediaPlayer. CurrentPosition屬性可以知道當(dāng)前播放位置的時(shí)間等等。至于Media Player對(duì)象的方法我們?cè)谇懊嬉呀?jīng)使用了很多,比如Play(), Pause()等均是Media Player的方法。由于Media Player對(duì)象的屬性和方法太多,我們不可能在此一一介紹,而只是對(duì)幾個(gè)較為重要的事件處理做了一定的介紹。用戶在使用時(shí)可以參考Media Player SDK的幫助文檔以獲取更多的信息。
本文對(duì)Media Service的客戶應(yīng)用程序Media Player的使用,特別是在Web頁(yè)中的使用做了簡(jiǎn)單的介紹。作為一個(gè)通用的媒體播放器,它還有很多的功能這里沒有介紹,要了解一個(gè)軟件的功能,最好的方法就是使用它。用戶如果感興趣可以從www.windowsmedia.com上去免費(fèi)下載。

英文資料看這里
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmplay/mmp_sdk/controlreference.asp 

注意:使用上面代碼需要將全角<>符號(hào)替換成半角<>才能正常使用。


文章來源:轉(zhuǎn)載
·[圖]用Windows Media Player 9制作歌詞
 放生
 愚愛
 夠愛
 觸電
 白狐
 葬愛
 光榮
 畫心
 火花
 稻香
 小酒窩
 下雨天
 右手邊
 安靜了
 魔杰座
 你不像她
 邊做邊愛
 擦肩而過
 我的答鈴
 懷念過去
 等一分鐘
 放手去愛
 冰河時(shí)代
 你的承諾
 自由飛翔
 原諒我一次
 吻的太逼真
 左眼皮跳跳
 做你的愛人
 一定要愛你
 飛向別人的床
 愛上別人的人
 感動(dòng)天感動(dòng)地
 心在跳情在燒
 玫瑰花的葬禮
 有沒有人告訴你
 即使知道要見面
 愛上你是一個(gè)錯(cuò)
 最后一次的溫柔
 愛上你是我的錯(cuò)
 怎么會(huì)狠心傷害我
 不是因?yàn)榧拍畔?/a>
 親愛的那不是愛情
 難道愛一個(gè)人有錯(cuò)
 寂寞的時(shí)候說愛我