首页 > 设计 > 媒体动画 > 正文

Authorware综合技巧:DirectMedia Xtra详细办法(二)

2020-09-19 18:39:08
字体:
来源:转载
供稿:网友
h、设置cpu占用率
  seticonproperty(@"directmedia xtra", #cpuboost,60):此函数可设置播放媒体文件时cpu的占用率,其值可以为0至95。此值一般不宜超过60。
  i、播放时自动调整时间长度
  seticonproperty(@"directmedia xtra", #adjustdurationbeforeplayback,1):如果设置此属性为真(1),则表示系统将在播放媒体文件时自动调整时间长度。这一点往往很必要,因为不同计算机中的directshow驱动器可能会报告同一个视频文件为不同的时间长度,因此,在不同的计算机中播放同一媒体文件时,可能会出现一些问题,如暗区设置不对等。
  j、是否显示工具条及是否重复播放
  seticonproperty(@"directmedia xtra", #hastoolbar,1):设置此属性为1或0可决定是否在视频播放窗口下面显示一个工具条。
  seticonproperty(@"directmedia xtra", #loop,1):设置此属性为1则可令媒体文件循环播放。
  k、播放片断
  seticonproperty(@"directmedia xtra", #playsegment,1):若设置此属性为1,则表示可以播放媒体文件中的某一个片断。
  seticonproperty(@"directmedia xtra", #segmentstart,time):此函数可设置当前媒体文件播放的开始时间,其数值的单位为ms。此函数仅当设置了  seticonproperty(@"directmedia xtra", #playsegment,1)后有效。
  seticonproperty(@"directmedia xtra", #segmentend,45800):此函数可设置当前媒体文件播放的结束时间,其数值的单位为ms。此函数仅当设置了  seticonproperty(@"directmedia xtra", #playsegment,1)后有效。
  l、开始时暂停
  seticonproperty(@"directmedia xtra", #pausedatstart,1):此函数可设置媒体文件在打开后是否先暂停。
  m、显示暗区时刻及名称
  geticonproperty(@"directmedia xtra", #cuepointtimes):此函数将返回指定directmedia xtra图标中媒体文件中所包含的所有暗区的时刻,其结果将形成一个列表,时刻的单位为ms。
  result:=geticonproperty(@"directmedia xtra", #cuepointnames):此函数将返回指定directmedia xtra图标中媒体文件中所包含的所有暗区的名称,其结果将形成一个列表。
  6、 精灵(sprite)属性
  result:=getspriteproperty(@"directmedia xtra", #currenttime):此函数将返回媒体文件的当前播放时刻,其单位为ms。
  result:=getspriteproperty(@"directmedia xtra", #mediabusy):此函数将显示出媒体文件是否正在播放。若其值为1,则表示媒体文件正在播放。
  result:=getspriteproperty(@"directmedia xtra", #mostrecentcuepoint):此函数将显示刚刚所播放过的一个暗区的索引值。
  7、 图标函数
  callicon(@"iconname", #isdirectshowinstalled):此函数将返回1或0,从而可以检测用户的计算机中是否安装了directshow(或activemovie)。注意,在使用此函数时,必须存在一个有效的directmedia xtra图标(即上面的iconname)。
  callicon(@"iconname", #addcuepoint, cuepointtime, "cuepointname"):添加暗区。
  callicon(@"iconname", #removecuepoint, cuepointindex):删除暗区。
  8、 精灵(sprite)函数
  callsprite(@"iconname", #videoplay):此函数可以开始或恢复播放媒体文件。
  callsprite(@"iconname", #videopause):暂停媒体文件的播放。
  callsprite(@"iconname", #videoseek , time):搜索播放媒体文件。time应用ms表示,这样,系统将从指定的时刻开始播放。
  callsprite(@"iconname", #videoplaysegment , starttime, endtime):播放分别以starttime和endtime为开始时间和结束时间的片断。如果开始时间和结束时间为同一时间,则媒体文件将在此处暂停。
  callsprite(@"iconname", #ispastcuepoint , cuepointindex):如果指定的暗区索引值已经播放过了,则此函数将返回1,否则返回0。
  callsprite(@"iconname", #setvolume, volume):设置音量,其值从-100db至0db。
  callsprite(@"iconname", #getvolume):返回当前的音量值,其单位为分贝。
  callsprite(@"iconname", #setbalance, balance):设置左右声道平衡,其从-100至100db。
  callsprite(@"iconname", #getbalance):返回当前的左右声道平衡值,其单位为分贝。
  callsprite(@"iconname", #setrate , rate):设置媒体文件的播放速率,其值从0至200(单位为%)。
  callsprite(@"iconname", #getrate):返回当前媒体文件的播放速率,其单位为%。
  callsprite(@"iconname", #setfullscreen):全屏播放媒体文件。此函数将新建一个窗口来全屏播放媒体文件。注意,在播放完毕之后,应该关闭全屏播放方式。
  callsprite(@"iconname", #removefullscreen):关闭全屏幕播放方式,并返回至其原来的播放窗口。
  9、directmedia xtra应用实例
  下面是一个directmedia xtra的应用实例,其中程序结构请参见图3。


图3

  其中"设置窗口大小"图标用以设置演示窗口的大小,其内容为
  resizewindow(320,240)
  "directmedia xtra"图标中链接了一个外部的avi文件,双击此图标可打开其属性对话框,再单击"options"按钮可打开directmedia xtra的属性对话框,如图4所示。在此属性对话框中,已经选中了"toolbar"选项,因此,在播放时,影片下面将出现一个控制条。从左下角的暗区设置中可以看出,一共设置了七个暗区。


图4

  在"交互控制"中,设置了四个按钮响应和一个事件响应。其中四个按钮响应分别为"暂停"、"全屏播放"、"播放"、"倒带",其中的内容分别为"callsprite(@"directmedia xtra",#videopause)"、"callsprite(@"directmedia xtra",#setfullscreen)"、"callsprite(@"directmedia xtra",#videoplay)"、"callsprite(@"directmedia xtra",#videoseek,0)"。事件响应的具体内容请参见图3右上角的部分内容,其中"事件名称(event name)"为cuepointpassed。"测试暗区"计算图标中的内容为"cue:=eventlastmatched@"测试暗区"[#cuename]",即将刚经过的暗区名称(cuename)赋给变量cue,并在"交互控制"图标中显示该变量(播放过的:{cue}),如图5所示。


图5


图6

  通过上述工作,我们可以开始运行程序了,如图6所示。单击各按钮即可进行相应的操作。当单击"全屏播放"按钮后,程序将自动新开一个场景进行全屏播放影片(而原来的窗口播放并未停止),此时,单击任务栏中的任意图标即可令程序返回至窗口播放模式。在"播放过的暗区"后面,随着影片的不断播放,将逐一显示我们设置的七个暗区名称。你只需稍微动一下脑筋,即可利用暗区来对影片进行随意的播放控制。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表