當前位置:首頁>>軟件教程>>網(wǎng)頁制作>>新聞內(nèi)容
在Web頁中使用Media Player
作者:佚名 發(fā)布時間:2004-3-9 9:02:22 文章來源:西部E網(wǎng)

  在Web頁中嵌入Media Player的方法比較簡單,只要用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是對象的名稱,當用戶在JavaScript要對Media Player進行控制時可以用該對象的名稱WMPlay進行訪問。CODEBASE指明當用戶的瀏覽器中沒有安裝Player控件時可以從該URL指定的位置去獲取。

  當然在建立Player對象時也可以用<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"表示在播放時是否顯示控制條。Media Player的參數(shù)很多,我們在此不再一一詳述。讀者如果需要了解更詳細的內(nèi)容可以參考Media Player SDK中的相關部分。
  如果用戶需要對Media Player進行控制可以用JavaScript進行控制。

  在這個例子中,Media Player嵌入在Web頁面中,在Media Player右邊有一些按鈕,利用這些按鈕用戶可以控制Media Player的播放活動。這些按鈕的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>

  相應的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>

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

1 OpenStateChange 事件
OpenStateChange 事件表示Player的狀態(tài)已經(jīng)發(fā)生了改變。Media Player的打開狀態(tài)有:
0 表示流已經(jīng)關閉(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對象時的名字。

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)關閉(mpClosed)

用JavaScript處理該事件的方法為:

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


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

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


  其中bStart為一個布爾變量,當它為TRUE時表示緩沖正在進行,反之表示緩沖已經(jīng)結束。

4 ScriptCommand 事件

  ScriptCommand事件表示Media Player接收到了Script 命令,這時用戶可以利用對接收到Script命令進行分析以決定采取相應的處理。我們知道利用Media Tools的ASF Indexer工具可以給流添加Script命令,當流播放器Player接收到這些Script 命令時會激活這個事件處理方法,于是用戶可以在事件處理方法中對Script命令進行處理。處理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中指定的頁面。

5 MarkHit 事件

  MarkerHit事件同ScritpCommand事件一樣,當媒體播放器在ASF流中遇到標記時會激活該事件,用戶利用該事件可以知道當前的標記是第幾個標記。MarkerHit事件的處理方法是:

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


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

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


最新更新
·如何去掉ECShop2.7中的Powered by ECSh
·在IE7下生成高質(zhì)量CSS縮略圖
·解決Dreamweaver打開和關閉時出現(xiàn)JavaS
·影響搜索引擎排名的因素2009版
·IE6/IE7/IE8/Firefox/Chrome/Safari的C
·Flash對聯(lián)廣告及關閉按鈕制作方法
·Discuz! 7中如果設置帖子中顯示圖片而不
·5種方法立刻寫出更好的CSS代碼
·兼容IE和Firefox的按圖片寬度縮放的CSS
·兼容Firefox和IE瀏覽器的“加入收藏”代
相關信息
畫心
愚愛
偏愛
火苗
白狐
畫沙
犯錯
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛
棉花糖
海豚音
我相信
甩蔥歌
這叫愛
shero
走天涯
琉璃月
Nobody
我愛他
套馬桿
愛是你我
最后一次
少女時代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂
星月神話
心痛2009
愛丫愛丫
半城煙沙
旗開得勝
郎的誘惑
愛情買賣
2010等你來
我叫小沈陽
i miss you
姑娘我愛你
我們都一樣
其實很寂寞
我愛雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個傳說
丟了幸福的豬
找個人來愛我
要嫁就嫁灰太狼
如果這就是愛情
我們沒有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開之前離開
不是因為寂寞才想你
愛上你等于愛上了錯
在心里從此永遠有個你
一個人的寂寞兩個人的錯