网页中的多媒体播放控制

Re:网页中的多媒体播放控制
3.网页视频控制之使用指南 作者:DiffMaker 
  
 □播放方法和属性  
     除播放、暂停、停止外,媒体播放器还可用下面的属性:  
     扫描(Scanning)——与录像机的快进快倒功能类似;  
     搜索(Seeking)——直接移到剪辑中标记的特定上演时间;  
  
 □播放  
     媒体播放器提供了两种技术来指定要播放的媒体名称(剪辑),你可以设置 FileName 属  
 性,或调用 Open 方法。 如果 AutoStart 属性的值是 true 的话,当 FileName 属性被设  
 置成该电影剪辑的 URL 后,该电影剪辑将开始播放;否则电影剪辑不会开始播放, 除非你  
 调用 Play 方法。 Open 方法开始播放是异步的,它不象 Play 方法要等到其他的进程结束  
 后才开始播放。  
     媒体播放器提供了下面的类似录像机的属性和方法来控制流媒体的播放:  
     Play、Stop、Pause 方法,来开始、停止、暂停流媒体。  
     PlayCount 属性,设置文件播放的次数。  
     AutoRewind 属性,确定当停止播放时是否返回到电影剪辑的开始部分。  
  
 □音频控制  
     媒体播放器提供了下面的属性来管理音频:  
     Balance 属性,确定左右音箱的声音平衡;  
     Volume 属性,用来加大或降低音量;  
     Mute 属性,用来关闭或打开声音;  
     ※你可以将 ShowAudioControls 属性设为 true 来在控制栏添加处理声音的控件。  
  
 □扫描  
     媒体播放器提供了下面的属性用以扫描:  
     FastForward 方法,快进;  
     FastReverse 方法,快倒;  
     Rate属性,改变播放速率;  
     ※要想使电影剪辑能被扫描,必须将 CanScan 和 AllowScan 属性设为 true。  
  
 □搜索  
     用于搜索的属性有:  
     MarkerCount 属性,指剪辑中标记的总数量;  
     CurrentMaker、GetMarkerName、GetMarkerTime 方法,用于返回标记信息;  
     MarkerHit 事件,当遇到标记时触发;  
     CurrentPosition 属性,当前位置(用秒度量),可用来将播放头移到剪辑中指定的点;  
     PositionChange 事件,当设置 CurrentPosition 属性时触发;  
     ※要想搜索到任意的时间,必须将 CanSeek 属性设为 true,要想搜索到标记点,必须  
 将 CanSeekToMarkers 属性设为 true。  
  
 □媒体播放器的外观界面  
     在网页中,你可以通过相关属性来控制媒体播放器的哪些部分出现,哪些部分不出现。  
 媒体播放器包括如下元素:  
     Video Display Panel:视频显示面板;  
     Video Border:视频边框;  
     Closed Captioning Display Panel;字幕显示面板;  
     Track Bar;搜索栏;  
     Control Bar with Audio and Position Controls:带有声音和位置控制的控制栏;  
     Go To Bar:转到栏;  
     Display Panel:显示面板;  
     Status Bar:状态栏;  
     下面的属性用来决定显示哪一个元素:  
     ShowControls 属性:是否显示控制栏(包括播放控件及可选的声音和位置控件);  
     ShowAudioControls 属性:是否在控制栏显示声音控件(静音按钮和音量滑块);  
     ShowPositionControls 属性:是否在控制栏显示位置控件(包括向后跳进、快退、  
                                快进、向前跳进、预览播放列表中的每个剪辑);  
     ShowTracker 属性:是否显示搜索栏;  
     ShowDisplay 属性:是否显示显示面板(用来提供节目与剪辑的信息);  
     ShowCaptioning 属性:是否显示字幕显示面板;  
     ShowGotoBar 属性:是否显示转到栏;  
     ShowStatusBar 属性:是否显示状态栏;  
  
 □播放列表  
     媒体播放器提供下面的方法来访问播放列表中的剪辑:  
     Next 方法,跳到节目(播放列表)中的下一个剪辑;  
     Previous 方法,跳回到节目中的上一个剪辑;  
     媒体播放器的一个特性是能够预览节目中的每一个剪辑,使用如下属性:  
     PreviewMode 属性,决定媒体播放器当前是否处于预览模式;  
     CanPreview 属性,决定媒体播放器能否处于预览模式;  
     在windows 媒体元文件中,可以为每一个剪辑指定预览时间——PREVIEWDURATION,如果  
 没有指定,那么默认的预览时间是10秒钟。  
     你也可以用Windows 媒体元文件来添加 watermarks 与 banners,元文件也支持插入广  
 告时的无间隙流切换。  
  
 □节目信息  
     使用 GetMediaInfoString 方法可以返回相关剪辑或节目的如下信息:  
     文件名:File name  
     标题:Title  
     描述:Description  
     作者:Author  
     版权:Copyright  
     级别:Rating  
     URLs:logo icon、watermark、banner的地址  
     剪辑信息可以放在媒体文件中,也可以放在Windows 媒体元文件中,或者两者都放。如  
 果在元文件中指定了剪辑信息,那么用 GetMediaInfoString 方法返回的就是元文件中的信  
 息,而不会返回剪辑中包含的信息。  
     在元文件中,附加信息可以放置在每一个剪辑或节目的 PARAM标签中。你可以为每个剪  
 辑添加任意多个 PARAM 标签,用来存储自定义的信息或链接到相关站点。在 PARAM 标签中  
 的信息可以通过 GetMediaParameter 方法来访问。  
     下面的属性返回有关大小和时间的信息:  
     ImageSourceHeight、ImageSourceWidth:返回图像窗口的显示尺寸;  
     Duration 属性,返回剪辑的长度(秒), 要检测这个属性是否包含有效的数值,请检查  
 IsDurationValid 属性。(对于广播的视频,其长度是不可预知的)。  
  
 □字幕  
     你可以用 .smi 文件来为你的节目添加字幕。媒体播放器支持下面的属性来处理字幕:  
     SAMIFileName 属性,指定 .smi 文件的名字;  
     SAMILang 属性,指定字幕的语言(如果没有指定则使用第一种语言);  
     SAMIStyle 属性,指定字幕的文字大小和样式;  
     ShowCaptioning 属性,决定是否显示字幕显示面板;  
  
 □脚本命令  
     伴随音频、视频流,你可以在流媒体文件中加入脚本命令。脚本命令是多媒体流中与特  
 定时间同步的多对Unicode串。第一个串标识待发命令的类型,第二个串指定要执行的命令。  
 当流播放到与脚本相关的时间时,控件会向网页发送一个 ScriptCommand事件,然后由事件  
 处理进程来响应这个事件。脚本命令字符串会作为脚本命令事件的参数传递给事件处理器。  
     媒体播放器会自动处理下面类型的内嵌脚本命令:  
     1)URL型命令:当媒体播放器控件收到一个URL型的命令时,指定的URL会被装载到用户  
 的默认浏览器。如果媒体播放器嵌在一个分帧的HTML文件中,URL页可以装载到由脚本命令  
 指定的帧内。如果脚本命令没有指定一个帧,将由 DefaultFrame 属性决定将 URL 页装入  
 哪一帧。  
     你可以通过设置 InvokeURLs 属性来决定是否自动处理 URL 型的脚本命令。如果这个  
 属性的值为 false ,媒体播放器控件将忽视 URL型命令。但是脚本命令事件仍会触发,这  
 就允许你有选择地处理 URL 型命令。  
     URL 型命令指定的是 URL 的相对地址。基地址是由 BaseURL属性指定的。媒体播放器  
 控件传送的脚本命令事件的命令参数是链接好的地址。  
     2)FILENAME型命令:当媒体播放器控件收到一个FILENAME型的命令时,它将 FileName  
 属性设置为脚本命令提供的文件,之后媒体播放器会打开这个文件开始播放。 媒体播放器  
 控件总是自动处理 FILENAME 型命令,不象 URL 型命令,它们不能被禁止。  
     3)TEXT型命令:当媒体播放器控件收到一个 TEXT型的命令时,它会将命令的内容显示  
 在控件的字幕窗口。内容可以是纯文本的,也可以是 HTML。  
     4)EVENT型命令:当媒体播放器控件收到一个 EVENT型的命令时,它会在媒体元文件中  
 搜索 EVENT 元素的 NAME 属性。如果 NAME 属性与脚本命令中的第二个字符串匹配,媒体  
 播放器控件就执行包含在 EVENT 元素中的条目。  
     5)OPENEVENT型命令:当媒体播放器控件收到一个 OPENEVENT型的命令时,它会在媒体  
 元文件中检查 EVENT 元素,并打开匹配的标题,但不播放,直到收到来自 EVENT型命令的  
 同名真实事件。  
  
 □捕捉键盘和鼠标事件  
     EnableContextMenu 与 ClickToPlay 属性为用户提供了在图像窗口进行操作的方法。  
 如果 EnableContextMenu 属性为 true ,在图像窗口右击鼠标可以打开关联菜单,如果将  
 ClickToPlay 属性设为 true ,用户可以单击图像窗口进行播放与暂停的切换。  
     要接收鼠标移动和单击事件,请将 SendMouseMoveEvents 和 SendMouseClickEvents  
 属性设为 true 。鼠标事件有:  
     MouseDown,当用户按下鼠标时产生;  
     MouseUp,当用户释放鼠标时产生;  
     MouseMove,当用户移动鼠标时产生;  
     Click,当用户在媒体播放器上单击鼠标按钮时产生;  
     DbClick,当用户在媒体播放器上双击鼠标按钮时产生;  
     要接收键盘事件,请将 SendKeyboardEvents 属性设为 true 。键盘事件有:  
     KeyDown,当用户按下一个键时产生;  
     KeyUp,当用户释放一个键时产生;  
     KeyPress,当用户按下并释放一个键时产生;  
  
 □监测流状态与网络链接  
     流状态属性包括:  
     PlayState:播放状态;  
     OpenState:打开状态;  
     Bandwidth:带宽;  
     支持的事件有:  
     OpenStateChange:打开状态改变(仅当SendOpenStateChangeEvents属性为true时触发)  
     PlayStateChange:播放状态改变(仅当SendPlayStateChangeEvents属性为true时触发)  
     EndOfStream:流结束时触发;  
     NewStream:打开新流时触发;  
     网络接收属性包括:  
     ReceptionQuality:接收质量;  
     ReceivedPackets:已经收到的包;  
     LostPackets:丢失的包;  
     监测缓冲的属性有:  
     BufferingTime:缓冲时间;  
     BufferingCount:缓冲次数;  
     BufferingProgress:缓冲进程;  
     Buffering:缓冲事件;  
  
 □错误处理  
     媒体播放器提供了内建的错误处理功能——在对话框或状态栏显示错误信息。 另外,你  
 可以自己添加错误处理程序。如果 SendErrorEvents 属性设置为 true,将不会显示错误框,  
 而是发送错误事件;如果 SendErrorEvents 属性设置为 false,将显示错误框,而是发送错  
 误事件。  
     媒体播放器支持下面的错误处理事件:  
     Error 事件,指有危险性错误发生;  
     Warning 事件,指发生了非危险性的错误;  
     当你的应用程序接收到一个错误事件,你可以检测下面的属性来确定具体的错误信息:  
     HasError:检测目前的媒体播放器是否有错误;  
     ErrorCode:提供与该类型错误相关的代码值;  
     ErrorDescription:提供错误的描述信息;  
     ErrorCorrection:指定媒体播放器对该类型的错误进行校正;  
  
 □播放CD  
     媒体播放器将 CD 看作(在每个音轨的开头具有标记的)单一音频流。 要在网页中使用  
 CD,你需要将 FileName 属性设为 CDAUDIO:,必须带有冒号,如下所示:  
 <HTML>  
 <HEAD><TITLE>CD Audio Playback Example</TITLE></HEAD>  
 <BODY>  
 <OBJECT ID="MediaPlayer"  
     CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"  
     WIDTH="320"  
     HEIGHT="508"  
     STYLE="position:absolute; left:0px; top:70px;"    >  
     <PARAM NAME="FileName" VALUE="cdaudio:">  
     <PARAM NAME="AutoStart" VALUE="0">  
     <PARAM NAME="ShowControls" VALUE="1">  
     <PARAM NAME="ShowStatusBar" VALUE="1">  
     <PARAM NAME="ShowDisplay" VALUE="1">  
 </OBJECT>  
 </BODY>  
 </HTML>  
     之后你可以用 Play 方法播放 CD 了。  
     你可以在 windows 媒体元文件中指定播放顺序以及每个音轨的信息。示例如下:  
  
 <ASX VERSION="3.0">  
     <TITLE>CD Audio with the Media Player</TITLE>  
     <AUTHOR>Windows Media Technologies</AUTHOR>  
     <COPYRIGHT>(c) 1999, Microsoft, Inc.</COPYRIGHT>  
  
     <ENTRY>  
       <TITLE>Track 1: Title 1</TITLE>  
       <REF HREF="cdaudio:" />  
       <STARTMARKER NUMBER="1"/>  
       <ENDMARKER NUMBER="2"/>  
    </ENTRY>  
  
     <ENTRY>  
       <TITLE>Track 2: Title 2</TITLE>  
       <REF HREF="cdaudio:" />  
       <STARTMARKER NUMBER="2"/>  
       <ENDMARKER NUMBER="3"/>  
     </ENTRY>  
  
     <ENTRY>  
       <TITLE>Track 3: Title 3</TITLE>  
       <REF HREF="cdaudio:" />  
       <STARTMARKER NUMBER="3"/>  
       <ENDMARKER NUMBER="4"/>  
     </ENTRY>  
  
     <ENTRY>  
       <TITLE>Track 4: Title 4</TITLE>  
       <REF HREF="cdaudio:" />  
       <STARTMARKER NUMBER="4"/>  
     </ENTRY>  
 </ASX> 
  
  下面是作者写的一个例子,大家可以保存下来测试一下 
  
 [code] 
 <HTML> 
 <HEAD><TITLE>例子</TITLE> 
 <style type="text/css"> 
 <!-- 
 input{font:10pt/1em;color:white;background-color:gray;border:1px solid black;width:100px;heiht:1px;margin:2px;padding-top:2px;padding-left:2px;cursor:hand} 
 //--> 
 </style> 
 </HEAD> 
 <BODY style="margin:0px"> 
 <table width="600" height="100%" border="0" cellspacing="0" cellpadding="0" align="center"> 
   <tr> 
     <td width="160"> <object id="MediaPlayer1" width=160 height=120 
   classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95" 
   standby="Loading Windows Media Player components..." 
   type="application/x-oleobject" style="border:1px solid black"> 
         <param name="AllowChangeDisplaySize" value="false"> 
         <param name="AllowScan" value="true"> 
         <param name="AnimationAtStart" value="false"> 
         <param name="AudioStream" value="-1"> 
         <param name="AutoRewind" value="true"> 
   <param name="AutoSize" value="false"> 
   <param name="AutoStart" value="false"> 
   <param name="Balance" value="0"> 
   <param name="BaseURL" value=""> 
         <param name="FileName" value=" http://www.cabletv.net.cn/vediotest/test.asf";> 
         <param name="ShowControls" value="false">         
         <param name="PlayCount" value="1"> 
   <param name="InvokeURLs" value="false"> 
         <param name="TransparentAtStart" value="True"> 
     </object></td> 
     <td align="center">   
       <input type="button" value="暂停" onClick="MediaPlayer1.Pause();">  
       <input type="button" value="停止" onClick="MediaPlayer1.Stop();MediaPlayer1.currentPosition=0">     
       <input type="button" value="播放" onClick="MediaPlayer1.Play();"><br> 
       <input type="button" value="帮助" onClick="MediaPlayer1.ShowDialog(0);">    
       <input type="button" value="选项" onClick="MediaPlayer1.ShowDialog(2);"> 
       <input type="button" value="统计信息" onClick="MediaPlayer1.ShowDialog(1);"><br> 
       <input type="button" value="剪辑标题" onClick="alert(MediaPlayer1.GetMediaInfoString(8));">  
       <input type="button" value="剪辑作者" onClick="alert(MediaPlayer1.GetMediaInfoString(9));">  
       <input type="button" value="剪辑版权" onClick="alert(MediaPlayer1.GetMediaInfoString(10));"><br>  
       <input type="button" value="剪辑级别" onClick="alert(MediaPlayer1.GetMediaInfoString(11));">  
       <input type="button" value="剪辑说明" onClick="alert(MediaPlayer1.GetMediaInfoString(12));">    
       <input type="button" value="第一个标记名称" onClick="alert(MediaPlayer1.GetMarkerName(1));"><br> 
       <input type="button" value="第一个标记时间" onClick="alert(MediaPlayer1.GetMarkerTime(1));">  
       <input type="button" value="第二个标记名称" onClick="alert(MediaPlayer1.GetMarkerName(2));"> 
       <input type="button" value="第二个标记时间" onClick="alert(MediaPlayer1.GetMarkerTime(2));">       
     </td> 
   </tr> 
 </table> 
 </BODY> 
 </HTML> 
 [/COLOR]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值