在Authorware中,虽然可以直接使用一些外部媒体文件,如视频、声音等,但有很大的局限性。比如,在Authorware中,不能直接使用常见的VCD文件(即DAT文件);不能直接播放MIDI文件;不能同时播放两路及多路WAV文件(比如,在有主体配音时,还要播放背景音乐)等。
下面,我们将通过一个外部Xtra即DirectMedia Xtra来实现在Authorware中自由使用外部媒体文件的实例。
1、 DirectMedia Xtra简介
DirectMedia Xtra是一个商业产品,用户可以在网站http://www.tbaiana.com上了解到关于它的一些详细介绍。
DirectMedia Xtra是一个完整支持外部媒体文件的Xtra插件,它既可以用于Authorware中,也可以用于Director中。它完全支持MPEG视频文件、QuickTime视频文件、常见的AVI视频文件、WAV文件、AIF文件、MP2和MIDI文件播放和控制。DirectMedia Xtra有一个很大的特色,即WYSIWYG(What You See Is What You Get--所见即所得)。使用它可以很直观地控制外部媒体对象的音量、播放速度、光标及全屏播放视频文件。
DirectMedia Xtra在播放MPEG文件和AVI文件时,使用了微软的ActiveMovie及DirectShow引擎来播放高质量和高性能的视频文件。
同时,DirectMedia Xtra还直接支持在视频文件中添加"暗区(Cue Point)",利用暗区,我们可以更加方便地控制视频文件的播放。
2、 DirectMedia Xtra的使用
在使用DirectMedia Xtra之前,必须先行安装。待安装完成之后,可以通过Authorware的菜单命令Insert--Tabuleiro Xtras--DirectMedia Xtra来将外部媒体文件添加至Authorware之中。
如果要使用多路WAV文件,可以在Authorware的流程线上多添加几个DirectMedia Xtra图标即可。
3、 界面介绍
当添加DirectMedia Xtra图标后,屏幕上会出现一个标准的DirectMedia Xtra属性对话框,如图1所示。
图1
单击"Browse File"按钮可以打开一个选择文件的对话框,在其中,我们可以选择一个外部媒体文件,其类型可以是MPG、AVI、MOV、WAV、AIF、MP2、MID等。除了可以选择本机上的文件外,我们还可以选择网络中任何一台计算机中的文件,甚至可以单击"Enter URL"按钮以输入一个位于Internet中的文件,如http://www.mynet.com/media/file.mpg。当选择好文件后,该文件的一些基本信息将显示在属性对话框中,如媒体文件的长度(播放时间)、大小(如视频文件的宽度和高度)等。
一旦选择了外部媒体文件,我们就可以直接在属性对话框中预览所选文件、设置暗区、设置播放选项(如是否显示工具条、是否循环播放、是否隐藏光标等)、设置播放控制选项(如调节音量大小、调节播放速度、调节声音平衡等)。
当上述设置完成后,在Authorware的流程线上就会出现一个DirectMedia Xtra图标,如图2所示。双击此图标即可再次编辑DirectMedia Xtra图标的属性。
 |
图2
4、 设置暗区
在DirectMedia Xtra的属性对话框中,可以直接设置暗区。这些暗区可以在Authorware的事件(Event)响应中进行调用。
每一个DirectMedia Xtra图标中可以最多设置64个不同的暗区,每个暗区的时间是以毫秒来测量的,暗区的名称最多可以达到32个字符。
要创建暗区,可以在DirectMedia Xtra的属性对话框中,先通过预览按钮以定位视频文件至某个时刻,然后单击"Add"按钮,并设置暗区名称即可;如果需要修改一个已有暗区的属性,可以双击该暗区名称,然后在出现的对话框中修改名称及时间;单击"Remove"按钮可删除某个暗区;单击"Go to"按钮可以跳至当前暗区,这样可以测试各个暗区的设置情况。
我们也可以通过脚本语言来设置暗区。此时,需要使用到两个函数,分别用于添加和删除暗区。
CallIcon(@"IconName", #addcuepoint, cuepointtime, "cuepointname"):添加暗区。其中IconName为DirectMedia Xtra图标的名称;cuepointtime为添加暗区的时刻;cuepointmane为添加暗区的名称。如CallIcon(@"DirectMedia Xtra", #addcuepoint, 10000, "newcue")
CallIcon(@"IconName", #removecuepoint, cuepointindex):删除暗区。其中cuepointindex为暗区的索引号(此索引号是根据暗区的先后时刻来进行排列的)。如CallIcon(@"DirectMedia Xtra", #removecuepoint, 1)。
暗区设置完成后,可以在Authorware的事件响应中进行调用。当创建了Event响应后,在其Sender选项中选择一个DirectMedia Xtra图标名称,然后双击它以打开或关闭此图标中媒体文件所包含的暗区。此时,事件名称(Event Name)中将显示出"CuePointPassed"事件。这样,当媒体文件播放至每一个暗区时,事件交互都将产生响应。如果想知道事件响应的详细内容,比如,我们想知道外部媒体文件在播放过程中,到底哪个暗区在什么时候出现,则可以使用变量EventLastMatched@"Response"来捕获暗区名称。
5、 图标属性
我们可以使用一些变量或函数来获得或设置DirectMedia Xtra图标的属性。
A、文件属性
result:=GetIconProperty(@"DirectMedia Xtra", #file):此函数可以返回图标所链接的外部媒体文件的完整路径和文件名。
SetIconProperty(@"DirectMedia Xtra", #file,"C:\tmp\sample.mpg"):此函数可以设置指定图标所链接的外部媒体文件。
B、标题属性
result:=GetIconProperty(@"DirectMedia Xtra", #title):此函数可以返回图标所链接的外部媒体文件的文件名。
C、显示图标的定位文件对话框
SetIconProperty(@"DirectMedia Xtra", #showlocatefiledialog,TRUE):如果设置此属性为真,则当外部媒体文件移动位置或出现其它原因而找不到原始媒体文件时,系统将自动出现选择文件对话框,以让用户重新选择一个外部媒体文件。
D、文件播放时间
result:=GetIconProperty(@"DirectMedia Xtra", #duration):此函数将返回指定图标所链接外部媒体文件的播放时间长度,其单位为ms。
E、视频高度及宽度
result:=GetIconProperty(@"DirectMedia Xtra", #videowidth):此函数将返回指定图标所链接外部视频文件的宽度。
result:=GetIconProperty(@"DirectMedia Xtra", #videoheight):此函数将返回指定图标所链接外部视频文件的高度。
F、显示及设置音量、平衡
result:=GetIconProperty(@"DirectMedia Xtra", #volume):此函数将返回指定图标所链接媒体文件的音量大小,其数值范围从-100至0,单位是DB(分贝)。
SetIconProperty(@"DirectMedia Xtra", #volume,0):此函数将设置外部媒体文件的音量大小。
result:=GetIconProperty(@"DirectMedia Xtra", #balance):此函数将返回指定图标所链接的外部媒体文件的左右声道平衡数值,其范围为-100至100。
SetIconProperty(@"DirectMedia Xtra", #balance,0):此函数可设定指定图标所链接的外部媒体文件的左右声道的平衡数值。
G、播放速度
result:=GetIconProperty(@"DirectMedia Xtra", #rate):此函数将返回指定图标所链接外部媒体文件的播放速度,其值从0至200,表示其原始速度的百分比数值。
SetIconProperty(@"DirectMedia Xtra", #rate,80):此函数可设置媒体文件的播放速度。