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>