您现在的位置:小学生自学网>> 信息>> 学习电脑

DirectMedia Xtra用户指南

作者: 来源: 发布时间:2013年11月02日 点击数:
 

DirectMedia Xtra用户指南

介绍
      DirectMedia Xtra是一种Sprite Xtra。Sprite Xtra可以用计算图标进行控制,而且属性也可以通过脚本指定,就像Authorware中的内置媒体文件一样。
      如果回放的系统允许,DirectMedia Xtra还支持Microsoft’s DirectDraw and DirectSound。它总能够根据机器的不同选择最佳的播放效果,即使显示设置为256色,也能使用高彩色来播放媒体文件。DirectDraw引擎利用直接写显存的技术增强回放效果。

      要建立一个图标,打开INSERT菜单,选择TABULEIRO XTRAS -> DirectMedia Xtra,这时会显示一个DirectMedia Xtra属性对话框,单击browse file,打开另一个对话框,提示你选择一个媒体文件。它所支持的媒体类型有Mpeg, AVI, Quicktime, WAV, AIF, MP2 和MIDI。文件可以在本地机器,也可以在局域网上其他计算机上,甚至可以用输入URL链接一个互联网上的文件。选好文件,点击OK,返回属性对话框,文件的长度 (时间),尺寸等信息应能正确的显示出来。
      你可以预览文件,标注提示点并设置播放选项(工具条,音量,速率,平衡等等),单击OK完成。在流程线上就出现一个名为DirectMedia Xtra的图标,可以重新调整播放的位置和尺寸。

提示点
      每一个DirectMedia Xtra可以有最多64个提示点,以毫秒位单位,每一个提示点的名字最多可以使用32个字符。要建立一个提示点就要在属性对话框中预览文件时确定时间,然后选择“ADD”,显示一个窗口定义提示点的名字。如果以后想修改提示点,在列表中双击名字就可以直接编辑了。使用"GOTO"检查提示点的定位,"REMOVE"用来删除一个提示点。
 
用脚本建立提示点
 
CallIcon(@"IconName", #addcuepoint, cuepointtime, "cuepointname") - 这个函数建立一个新的提示点,cuepointtime是时间 cuepointname是名字,自动排列顺序。
Example:
CallIcon(@"DirectMedia Xtra", #addcuepoint, 10000, "newcue")
 
CallIcon(@"IconName", #removecuepoint, cuepointindex) - 删除一个提示点,需要指定提示点的序号。
Example:
CallIcon(@"DirectMedia Xtra", #removecuepoint, 1)
 
使用提示点
 
DirectMedia Xtra 的提示点被用来在回放时几个方面的控制。下面是它的几个属性:
 
isPastCuePoint(sprite) ---经过的提示点
the mostRecentCuePoint of sprite ---最近的提示点
the cuepointtimes of icon ----指定提示点的时间
the cuepointnames of icon ----指定提示点的名字
 
      当媒体文件播放时,你必须设置一个事件响应以获取提示点,请参考所附带的例子程序。主要步骤是:建立一个“Event”类型的响应,在属性对话框中选择一个“Sender”图标名,再双击“Event Name”框中的“CuePointPassed”事件。这样,每当经过一个新的提示点,就触发这个响应。后面将要介绍的EventLastMatched变量会让你更多地了解这个事件。
 
Properties 属性
 
DirectMedia Xtra所有的属性都可以很方便地在属性对话框中进行设置,这个对话框在你创建图标或者双击该图标时出现。同时,也可以通过脚本进行设置。
 
 
Icon Properties 图标属性
 
file ---被使用的媒体文件的全路径名
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #file)
Trace(result)
--“C:\myfile\file.mpg”
 
SetIconProperty(@"DirectMedia Xtra", #file,”C:\myfile2.mpg”)
 
title ---媒体文件名,不带路径。这个属性用于在原目录找不到文件的时候。
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #title)
Trace(result)
--“file.mpg”
注:基于HTTP的文件链接,DMX不会在启动时自动定位。
 
showlocatefiledialog --- DirectMedia Xtra在运行时会自动定位媒体文件,如果文件没有找到,使用这个属性可以显示一个指定文件的对话框,否则,就是一片空白。
例如: SetIconProperty(@"DirectMedia Xtra", #showlocatefiledialog,TRUE)
 
linkedmedialocated --- 这个属性可以自动设置,用来表明媒体文件是否被正确调用。如果属性的值为False,DirectMedia Xtra就不会进行初始化播放。
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #linkedmedialocated)
Trace(result)
--“1”
 
duration --- 媒体文件的持续播放的时间,单位为毫秒。
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #duration)
Trace(result)
-- 45200
 
videowidth --- 媒体文件的播放宽度,单位为像素。
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #videowidth)
Trace(result)
-- 352
 
videoheight ---媒体文件的播放高度,单位为像素
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #videoheight)
Trace(result)
-- 240
 
volume --- 回放音频的音量。值的范围从-100到0(dB即分贝)
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #volume)
Trace(result)
-- -10
 
SetIconProperty(@"DirectMedia Xtra", #volume,0)
 
balance --- 音频回放平衡,值的范围从-100到100(dB即分贝)
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #balance)
Trace(result)
-- -100
 
SetIconProperty(@"DirectMedia Xtra", #balance,0)
 
rate --- 回放速率。值的范围从0到200,是原来标准播放速度的百分比例。
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #rate)
Trace(result)
-- 100
 
SetIconProperty(@"DirectMedia Xtra", #rate,80)
 
cpuboost --- 由于DirectShow技术要占用比较多的CPU时间,因此DirectMedia Xtra会使Authorware的运行变慢。如果你遇到回放缓慢或者断续的情况,可以使用这个属性设置。合法的取值范围是0到95(百分比),一般来说,超过60就可以解决问题了。
 
例如: SetIconProperty(@"DirectMedia Xtra", #cpuboost,60)
 
adjustdurationbeforeplayback --- 如果这项属性的值为真,DirectMedia Xtra就会在开始播放的同时确定媒体文件的可持续播放时间。这是十分必要的,因为对于同一个文件,不同的DirectShow过滤器会报告不同的可持续播放时间。这样一来,当你把一个成品放到另一台机器运行的时候,DirectMedia Xtra就有可能无法达到指定的提示点,或者它会认为文件还没有播放完。使用这个属性可以保证正常播放,因此你应该在大多数情况下都使用。
 
例如: SetIconProperty(@"DirectMedia Xtra", #adjustdurationbeforeplayback,1)
 
hastoolbar --- 指出是否在播放窗口附带一个工具条。值为0(假)或1(真)。
 
例如: SetIconProperty(@"DirectMedia Xtra", #hastoolbar,1)
 
loop --- 指出是否自动循环播放文件。值为0(假)或1(真)。
 
例如: SetIconProperty(@"DirectMedia Xtra", #loop,1)
 
playsegment --- 指出是否只播放文件的一个片断。值为0(假)或1(真)。
 
例如: SetIconProperty(@"DirectMedia Xtra", #playsegment,1)
 
segmentstart --- 指定文件播放的起始时间,单位是毫秒。只在playsegment的值为真时有效。
 
例如: SetIconProperty(@"DirectMedia Xtra", #segmentstart,10700)
 
segmentend ---指定文件播放的结束时间,单位是毫秒。只在playsegment的值为真时有效。
 
例如: SetIconProperty(@"DirectMedia Xtra", #segmentend,45800)
 
pausedatstart --- 指出是否在打开文件的时候暂停,不播放。值为0(假)或1(真)。
 
例如: SetIconProperty(@"DirectMedia Xtra", #pausedatstart,1)
 
cuepointtimes --- 与该图标有关的提示点时间的列表。
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #cuepointtimes)
Trace(result)
-- [4500,12300,34650,67321]
 
cuepointnames ---与该图标有关的提示点名字的列表
 
例如: result:=GetIconProperty(@"DirectMedia Xtra", #cuepointnames)
Trace(result)
-- ["Cue 1","NewCuePoint","Start Point","Second part"]
 
Sprite 属性
 
currenttime --- 媒体文件当前播放位置,单位是毫秒。
 
例如: result:=GetSpriteProperty(@"DirectMedia Xtra", #currenttime)
Trace(result)
-- 22345
 
mediabusy --- 表明媒体文件是否正在播放。值为0(假)或1(真)。
 
例如: result:=GetSpriteProperty(@"DirectMedia Xtra", #mediabusy)
Trace(result)
-- 1
 
mostrecentcuepoint --- 最后经过的提示点的序号。
 
例如: result:=GetSpriteProperty(@"DirectMedia Xtra", #mostrecentcuepoint)
Trace(result)
-- 2
 
Functions --- 函数
 
DirectMedia Xtra 提供了几种函数功能,可以用脚本的方式使用来控制媒体文件的回放。
 
Icon Functions --- 图标函数
 
CallIcon(@"IconName", #isDirectShowInstalled) --- 返回0(假)或1(真)。用来判断用户机上是否安装了DirectShow。在正式版中有效。
 
例如: result:=CallIcon(@"DirectMedia Xtra", #isDirectShowInstalled)
Trace(result)
-- 1
 
CallIcon(@"IconName", #addcuepoint, cuepointtime, "cuepointname") --- 这个函数可以通过脚本语言建立一个新的提示点,提示点会自动排列顺序。
 
例如: CallIcon(@"DirectMedia Xtra", #addcuepoint, 10000, "newcue")
 
CallIcon(@"IconName", #removecuepoint, cuepointindex) --- 这个函数可以把你指定序号的提示点删除。
 
例如: CallIcon(@"DirectMedia Xtra", #removecuepoint, 1)
 
CallIcon(@"IconName", #scanfile) --- 当通过脚本语言改变要播放的媒体文件时,这个函数可以确定文件长度和可持续播放时间。它将自动查询文件并改变自身属性。Adjustdurationbeforeplayback也可以用来校对播放时间,我们建议使用这个属性来代替scanfile(),因为它更准确。
 
例如: CallIcon(@"DirectMedia Xtra", #scanfile)
 
CallIcon(@"IconName", #register, registration number) --- 在运行时对DirectMedia Xtra进行注册。这个函数不常用。
 
例如: CallIcon(@"DirectMedia Xtra", #register,"SERIALNUMBERHERE”)
 
Sprite 函数
 
CallSprite(@"IconName", #videoplay) --- 用于开始或是恢复播放媒体文件。通常在调用时会自动播放文件,除非选择了"Paused at Start"(在开始时暂停)
 
例如: CallSprite(@"DirectMedia Xtra ", #videoplay)
 
CallSprite(@"IconName", #videopause) --- 暂停播放。
 
例如: CallSprite(@"DirectMedia Xtra ", #videopause)
 
CallSprite(@"IconName", #videoseek , time) --- 查找并暂停在指定的时间位置。时间单位是毫秒。
 
例如: CallSprite(@"DirectMedia Xtra ", #videoseek, 15000)
 
CallSprite(@"IconName", #videoplaysegment , starttime, endtime) --- 播放文件的一个片断。请注意这个选项实际上限制了对片断以外其他部分的控制,因此应该再用另一个videoplaysegment()定位到其他的时间点上,跳出这个片断。
 
例如: CallSprite(@"DirectMedia Xtra ", #videoplaysegment, 10000, 20000)
-- the following command pauses the video in time location 30000
CallSprite(@"DirectMedia Xtra ", #videoplaysegment , 30000, 30000)
 
CallSprite(@"IconName", #isPastCuePoint , cuepointindex) --- 判断指定序号的提示点是否已经经过了。返回值为0(假)或1(真)。
 
例如: result:=CallSprite(@"DirectMedia Xtra ", #isPastCuePoint, 2)
Trace(result)
--- 1
 
CallSprite(@"IconName", #setvolume, volume) --- 设置音频回放的音量。赋值范围从-100到0(dB /分贝)。
 
例如: CallSprite(@"DirectMedia Xtra ", #setvolume , 0)
 
CallSprite(@"IconName", #getvolume) --- 返回当前音频播放的音量值,单位是dB /分贝。
 
例如: result:=CallSprite(@"DirectMedia Xtra ", #getvolume)
Trace(result)
-- -20
 
CallSprite(@"IconName", #setbalance, balance) --- 设置音频回放的平衡。赋值范围从-100到100(dB /分贝)。
 
例如: CallSprite(@"DirectMedia Xtra ", #setvolume , 0)
 
CallSprite(@"IconName", #getbalance) ---返回当前音频播放的平衡值,单位是dB /分贝。
 
例如: result:=CallSprite(@"DirectMedia Xtra ", #getbalance)
Trace(result)
-- -100
 
CallSprite(@"IconName", #setrate , rate) ---设置播放速率。赋值范围从0到200(%)
 
例如: CallSprite(@"DirectMedia Xtra ", #setrate , 80)
 
CallSprite(@"IconName", #getrate) --- 返回当前播放速率,百分比值。
 
例如: result:=CallSprite(@"DirectMedia Xtra ", #getrate)
Trace(result)
-- 100
 
CallSprite(@"IconName", #setfulscreen) --- 这个函数利用ActiveMovie/DirectShow实现全屏播放。它的全屏播放方式是完全独立的,无论你的程序是否工作在全屏状态下。在此期间不响应鼠标和键盘事件,因此要利用提示点来返回程序,而且在结束时要使用一次RemoveFullScreen()函数。
 
例如: CallSprite(@"DirectMedia Xtra ", #setfullscreen)
 
CallSprite(@"IconName", #removefulscreen) --- 停止ActiveMovie/DirectShow的全屏播放。返回到Authorware的展示窗口。
 
例如: CallSprite(@"DirectMedia Xtra ", #removefullscreen 1)
 
 
Creating Executables --- 建立可执行文件
 
DirectMedia Xtra 只能运行在Windows 95, 98 and Windows NT 环境。因此,你应该建立Windows 95 and Windows NT 的可执行文件。而且还要把DirectMediaXtra.x32文件放到XTRAS文件夹中,和你的可执行文件放在同一个目录下。
最终的文件结构应该像下面这样:
 
可执行文件 --- C:\myproj\proj.exe
Xtra 文件 --- C:\myproj\Xtras\DirectMediaXtra.x32
 
DirectMedia Xtra会自动定位所有在同一目录下的相关媒体文件,或者在searchpath变量中指定的目录中的。但不会从HTTP服务器上查找媒体文件。

DirectMediaXtra.x32下载地址:
http://u.115.com/file/f799f996c0