主题:  DirectMedia Xtra使用说明

春花秋月

职务:普通成员
等级:1
金币:0.0
发贴:75
#12001/5/31 17:21:19
找到了找到了,不敢独用,为大家献上:
——————————————————————————————————
 

DirectMedia Xtra用户指南

译者:哈尔滨 Jameszhao


--------------------------------------------------------------------------------

 

介绍

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服务器上查找媒体文件。

 



acneyouth

职务:普通成员
等级:1
金币:1.0
发贴:181
#22001/5/31 19:41:25
这是AuthorWare版的语法。