好像包含表格不能发表,只有先拷贝到记事本里面才可以,所以格式都丢了,不好意思
这个也是很久以前的东西了,不准确的地方还请大家见谅.哎,我的一本书没有被出版,就放到这里吧(出版社的人说看不懂,呵呵,我都快晕死了)
基于脚本的dvd应用程序
在网络发展神速的今天,软件业越来越注重基于网络的应用,下来我们就探讨一下基于web的程序编写。这里主要讲述使用mswebdvd控件进行dvd应用程序的开发过程。
插入MSWebDVD对象
MSWebDVD对象可以处理所有的dvd导航命令,并可以在web页面上显示视频。这将比原来的处理过程简单很多,简单的插入代码示例如下:
<OBJECT CLASSID=clsid:38EE5CEE-4B62-11D3-854F-00A0C9C898E7 ID=DVD
STYLE="height:369px; width:740px">
<PARAM NAME="BackColor" VALUE="1048592">
<PARAM NAME="EnableResetOnStop" VALUE="-1">
<PARAM NAME="ColorKey" VALUE="1048592">
</OBJECT>
允许用户处理dvd命令
若允许用户控制dvd播放器,则需要提供一个用户界面来引导用户,比如“播放”,“停止”按钮。下面的代码就展示了怎样将一个html的按钮和mswebdvd对象关联起来。
<INPUT ID=button1 NAME="button1" TYPE=button VALUE="Play" onClick='Play();'>
<INPUT ID=button2 NAME="button2" TYPE=button VALUE="Pause" onClick='Pause();'>
<SCRIPT LANGUAGE="JScript">
function Play(){
DVD.Play();
}
function Pause(){
DVD.Pause();
}
</SCRIPT>
用dvd菜单进行工作
当用户点击屏幕的按钮时,Mswebdvd会自动的处理菜单命令。应用程序不需要处理任何事情来实现对鼠标的支持。但是应用程序可以不考虑这个自动处理过程。如果你对定制鼠标工作十分感兴趣,那么你可以使用mswebdvd关联菜单的方法,比如SelectAndActivateButton, GetButtonAtPosition。要想彻底的禁止鼠标的自动化动作处理,那么设置DisableAutoMouseProcessing属性为真就可以了。
音频和子图流
一个dvd碟片可以处理8路音频流,从0―7,每个音频流又包含了6个独立的通道。只有这些流在能在任何时间被激活。对于子图来说,有32个流是有效的,从0-31。碟片通常制作成默认的音频和子图流,但一个应用程序允许用户看到所有有效的流数据,然后选择一种他们喜欢的语言。基本步骤的处理和音频与子图流相同。
1. 决定指定标题的有效流的数量。
2. 重新检测每个流的属性。
3. 从本地标识中返回语言代码,然后创建人们可读的字符串。
4. 添加“选择”对话框,或者别的用户界面来允许用户选择首选的数据流。
(注意音频和子图流标记是从0开始的,然而别的大部分都是从1开始)
强制父级管理层
在dvd碟片中通常任何的标题或者标题的一部分会被标记一个父级管理层(PML)
从1到8,8级是限制最多的,1级是限制最少的等级。有一种想法提供了一种装置来防止小孩看成人的内容,但每个国家的特殊性决定了他们将不会一样。在美国和加拿大是一种标准,和别的国家就不太一样。
MSWebDVD对象默认状态是忽略pmls的。对于应用程序来讲,它将会通报pml标记,这样必需调用NotifyParentalLevels(true)。当在碟片上碰到pml信息的时候,MSWebDVD将会通知你的应用程序。为了强制pmls,你的应用程序必需实现一些逻辑口令来将用户和不同的级别联系在一起,响应EC_DVD_PARENTAL_LEVEL_CHANGE事件来允许或者禁止访问。
保存和恢复书签
书签是一个MSWebDVD对象内部的数据结构,它可以被用来创建一个当前用户任务的快照,包含内容比如是当前碟片位置的信息,私人的父层管理级别,选择音频和子图流等等。这个意思是让用户可以保存当前的dvd状态可以下次接着从这个状态中继续观看。
SaveBookmark方法允许用户保存他们碟片的位置,RestoreBookmark方法则允许同一个用户可以接着上次储存的位置接着观看。
一次只能储存一个书签。如果你调用了两次SaveBookmark,那么第一次的书签将会被第二次的书签覆盖。书签对于计算机来说是特别的。在不同的计算机中运行同样的html页面,然后调用RestoreBookmark将会恢复最近的那次存储的书签,或者返回一个以前没有存储的标志错误。
处理dvd通报事件
当某种事件发生了的时候,MSWebDVD对象会向应用程序发送一个特定的通报事件,例如当DVD的域改变了,当遇到一个新的父层管理等等。事件参数可以获得与事件有关的附加信息。错误信息和警告信息都是通过这种方法进行发送的。为了扑获到变化的dvd事件通报,在html SCRIPT中加入以下代码。
<SCRIPT LANGUAGE="JScript" FOR=DVD EVENT="DVDNotify(EventCode, Param1, Param2)">
ProcessDVDEvent(EventCode, Param1, Param2)
</SCRIPT>
然后,在脚本中,定义事件代码和ProcessDVDEvent函数,下面的代码将展示它的用法。(你可以给你的事件处理函数任何的名称)
<SCRIPT LANGUAGE="JScript">
// DVD event codes are