Microsoft Windows Media Player(简称WMP)控件自动的调用Microsoft DirectShow API有关DVD-Video特定的界面,方法,事件和属性。作为ActiveX控件,WMP控件可以作为WEB页的组件。透过增强的DVD回放能力,WMP可在静态的WEB页面中添加令人激动的动态内容。
通过访问Microsoft VBScript样例页面展示的DVD回放功能,你可以建立本文所要论述的一个概念。注意:要正确的观看样例程序,你的系统必须能够回放DVD-Video,并安装了Microsoft Direct Show驱动程序。
本文包含以下内容:
定制用于DVD回放的控件
建立可以回放DVD的WEB 页面
通过使用脚本语言,如VBScript和Microsoft Jscript,都可以很容易的在HTML文档中放置WMP控件。本段内容说明如下问题。如何在HTML页面中内嵌WMP控件;如何使WMP控件回放DVD,如何用VBScript操作控制。
我们知道,OBJECT标记用来将ActiveX控件嵌入到HTML页面中。下列代码是将WMP控件插入页面的例子:
<OBJECT CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" WIDTH="652" HEIGHT="382" ID="MediaPlayer1"> </OBJECT>
下列的OBJECT表技属性是必需的。
设置控件的属性的可选方法是在OBJECT标记间加入PARAM标记。该方法是设置设计时属性的理想方法。下面的代码显示了在OBJECT标记中的PARAM标记的用法。
<OBJECT CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" WIDTH="652" HEIGHT="382" ID="MediaPlayer1"> <PARAM NAME="AutoStart" VALUE="0"> <PARAM NAME="Filename" VALUE="DVD:"> <PARAM NAME="ShowControls" VALUE="0"> </OBJECT>
在前面所提到的例子中的PARAM有两个属性,第一个是属性的名字,第二个是属性的值。第一个PARAM标记将AutoStart设为False,紧接着的两个PARAM标记改变FileName属性为DVD:,并将ShowControls属性设为False。注意:DVD的特别属性是不能用PARAM标记设定。
用于激活DVD回放的关键设定是将FileName的属性设为DVD:,它通知WMP控件在本地系统上搜寻DVD驱动器。如果AutoStart属性为True(默认选项),WMP控件会自动的回放DVD,否则必须将一个事件和DVD的回访关联起来,比如说按钮。
建立简单的界面提供对DVD回放的控制是必要的,我们建立了两组按钮,一组用来控制菜单选择,另一组用来控制回放状态。
下面的代码建立控制DVD菜单选择的按钮
|
<INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdTopSelect" VALUE="Top"> <INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdLeftSelect" VALUE="Left"> <INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdRightSelect" VALUE="Right"> <INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdBottomSelect" VALUE="Bottom"> <INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdButtonActivate" VALUE="Select"> |
下面的代码建立控制基本操作的按钮(播放,暂停和停止),当然还包括章节搜索和快进。
|
<INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdPlay" VALUE="Play"> <INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdPause" VALUE="Pause"> <INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdStop" VALUE="Stop"> <INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdResume" VALUE="Resume"> <INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdShowMenu" VALUE="Menu"> <INPUT TYPE="BUTTON" NAME="cmdPrevChapter" VALUE="|<<"> <INPUT TYPE="BUTTON" NAME="cmdRewind" VALUE="<<"> <INPUT TYPE="BUTTON" NAME="cmdFastForward" VALUE=">>"> <INPUT TYPE="BUTTON" NAME="cmdNextChapter" VALUE=">>|"> |
脚本代码为页面添加了交互性,允许程序响应事件,调用方法,改变运行时属性。下列代码显示每一个按钮相对应的子过程,他们由Onclick事件激活。当事件被触发后产生一个调用(或者是一系列的调用),控制WMP控件产生相应的动作。
样例程序
<SCRIPT LANGUAGE="VBScript">
<!--
Dim isScanning
isScanning = False
Sub cmdPlay_OnClick()
If isScanning Then
MediaPlayer1.DVD.ForwardScan(1)
Else
MediaPlayer1.Play()
End If
isScanning = False
End Sub
Sub cmdPause_OnClick()
MediaPlayer1.Pause()
End Sub
Sub cmdStop_OnClick()
MediaPlayer1.Stop()
End Sub
Sub cmdResume_OnClick()
MediaPlayer1.DVD.ResumeFromMenu()
End Sub
Sub cmdShowMenu_OnClick()
MediaPlayer1.DVD.MenuCall(3)
End Sub
Sub cmdPrevChapter_OnClick()
MediaPlayer1.DVD.PrevPGSearch()
End Sub
Sub cmdNextChapter_OnClick()
MediaPlayer1.DVD.NextPGSearch()
End Sub
Sub cmdFastForward_OnClick()
isScanning = True
MediaPlayer1.DVD.ForwardScan(5)
End Sub
Sub cmdRewind_OnClick()
isScanning = True
MediaPlayer1.DVD.BackwardScan(5)
End Sub
Sub cmdTopSelect_OnClick()
MediaPlayer1.DVD.UpperButtonSelect()
End Sub
Sub cmdLeftSelect_OnClick()
MediaPlayer1.DVD.LeftButtonSelect()
End Sub
Sub cmdRightSelect_OnClick()
MediaPlayer1.DVD.RightButtonSelect()
End Sub
Sub cmdBottomSelect_OnClick()
MediaPlayer1.DVD.LowerButtonSelect()
End Sub
Sub cmdButtonActivate_OnClick()
Dim buttonNumber
buttonNumber = MediaPlayer1.DVD.CurrentButton
MediaPlayer1.DVD.ButtonSelectAndActivate(buttonNumber)
End Sub
-->
</SCRIPT>
在混合了刚才我们讨论的元素后,将每一个片断的拼接在一起就形成了下面的代码。
将下列的代码拷贝到某个.HTM文件中,就可以看到效果。
样例程序
<HTML>
<HEAD>
<TITLE>DVD_Demo</TITLE>
</HEAD>
<BODY BGCOLOR="#000000" TEXT="#00FFFF">
<CENTER>
<TABLE>
<TR>
<TD VALIGN="TOP" WIDTH="10%">
</TD>
<TD>
<P ALIGN="center">
<OBJECT CLASSID="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" WIDTH="652"
HEIGHT="382" ID="MediaPlayer1">
<PARAM NAME="AutoStart" value="0">
<PARAM NAME="Filename" value="DVD:">
<PARAM NAME="ShowControls" value="0">
</OBJECT>
</P>
</TD>
<TD VALIGN="TOP" WIDTH="10%">
Menu Select
<BR>
<INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdTopSelect" VALUE="Top">
<BR>
<INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdLeftSelect" VALUE="Left">
<BR>
<INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdRightSelect" VALUE="Right">
<BR>
<INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdBottomSelect" VALUE="Bottom">
<P>
<INPUT TYPE="BUTTON" STYLE="WIDTH:70" NAME="cmdButtonActivate" VALUE="Select">
<P>
</TD>
</TR>
</TABLE>
</CENTER>
<CENTER>
<INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdPlay" VALUE="Play">
<INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdPause" VALUE="Pause">
<INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdStop" VALUE="Stop">
<INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdResume" VALUE="Resume">
<INPUT TYPE="BUTTON" STYLE="WIDTH:60" NAME="cmdShowMenu" VALUE="Menu">
<P>
<INPUT TYPE="BUTTON" NAME="cmdPrevChapter" VALUE="| < <">
<INPUT TYPE="BUTTON" NAME="cmdRewind" VALUE=" < <">
<INPUT TYPE="BUTTON" NAME="cmdFastForward" VALUE=" > >">
<INPUT TYPE="BUTTON" NAME="cmdNextChapter" VALUE=" > >|">
</CENTER>
<SCRIPT LANGUAGE="VBScript">
<!--
Dim isScanning
isScanning = False
Sub cmdPlay_OnClick()
If isScanning Then
MediaPlayer1.DVD.ForwardScan(1)
Else
MediaPlayer1.Play()
End If
isScanning = False
End Sub
Sub cmdPause_OnClick()
MediaPlayer1.Pause()
End Sub
Sub cmdStop_OnClick()
MediaPlayer1.Stop()
End Sub
Sub cmdResume_OnClick()
MediaPlayer1.DVD.ResumeFromMenu()
End Sub
Sub cmdShowMenu_OnClick()
MediaPlayer1.DVD.MenuCall(3)
End Sub
Sub cmdPrevChapter_OnClick()
MediaPlayer1.DVD.PrevPGSearch()
End Sub
Sub cmdNextChapter_OnClick()
MediaPlayer1.DVD.NextPGSearch()
End Sub
Sub cmdFastForward_OnClick()
isScanning = True
MediaPlayer1.DVD.ForwardScan(5)
End Sub
Sub cmdRewind_OnClick()
isScanning = True
MediaPlayer1.DVD.BackwardScan(5)
End Sub
Sub cmdTopSelect_OnClick()
MediaPlayer1.DVD.UpperButtonSelect()
End Sub
Sub cmdLeftSelect_OnClick()
MediaPlayer1.DVD.LeftButtonSelect()
End Sub
Sub cmdRightSelect_OnClick()
MediaPlayer1.DVD.RightButtonSelect()
End Sub
Sub cmdBottomSelect_OnClick()
MediaPlayer1.DVD.LowerButtonSelect()
End Sub
Sub cmdButtonActivate_OnClick()
Dim buttonNumber
buttonNumber = MediaPlayer1.DVD.CurrentButton
MediaPlayer1.DVD.ButtonSelectAndActivate(buttonNumber)
End Sub
-->
</SCRIPT>
</BODY>
</HTML>