标准声音解决方案:.背景midi+前景声音(一)
背景midi加前景声音是authorware提供的标准多音同放解决方案,在各种多媒体软件中使用广泛,它主要是通过多媒体函数接口(mci)来实现midi的播放。然而,midi函数不是authorware自身的标准函数,它是由一个名为a5wmme.u32的多媒体函数包提供的。这个函数包没有包含在authorware 5.0中,你必须到macromedia的网站中去下载它(免费)。
在midi播放函数中,最重要的是两个函数:midiplay和midiplaying。midiplay函数用于对midi进行播放,其格式为:
errorcode := midiplay(filename, tempo, wait),其中,filename为要播放的midi文件名;tempo为播放的节奏,一般为100,即按标准速率播放;wait为0表示作为背景播放(图标继续向下执行),为1表示作为前景播放(等待播放完毕再向下执行)。
midiplaying函数用于返回midi当前的播放状态,其格式为:
result := midiplaying()
如果返回为0则表示没有播放,为1表示正在播放。
在midi播放中一个头疼的问题是如何实现midi的循环播放。单纯使用midiplaying()函数,authorware 并不会对它响应,解决的方法是使用系统变量:fulltime。在流程线上加入一个永久条件响应并把条件设定为midiplaying()+fulltime=0+fulltime,然后在条件分支中加入midi播放图标即可。
quicktime解决方案:.多声音合成之一
quicktime多音回放方案是authorware提供的另一种声音解决方案。使用前必须先在windows里加装quicktime多媒体播放软件,你可以在apple公司的主页去下载,如今广泛使用的是quicktime v4.1。由于quicktime是mac os下极为重要的多媒体平台,因此支持的媒体格式特别多样。从mp3音乐到mov格式的影像,甚至于连gif格式的动画图像和flash动画都能加以使用。而且,使用mp3等音乐不受数目限制,因而使用方便。
authorware中自带quicktime的接口,可以使用quicktime 3.0及以后的版本,然而为了使用较多的声音格式(如mp3),应当使用quicktime 4.0及以后的版本。使用的方法是:通过authorware的insert选单→media→quicktime 3..即可。要注意的是,authorware v5.1中对quicktime的支持有问题,不能正常播放。解决的方法是把5.0版中xtras目录下的quicktime目录拷贝到v5.1相同目录下覆盖即可。请注意:使用quicktime后将造成authorware自身的多媒体图标无效果。
使用quicktime最大的问题是对于各个音源的音量控制十分不方便,而且在较老的声卡上,同时播放两种音源会产生间断性颤音现象,使用尚需改进。
directmediaxtra解决方案:多声音合成之二
directmediaxtra是笔者接触到的迄今为止最为完善的声音解决方案。同样是使用autherware插件接口,directmediaxtra却提供了近乎完美的支持。它能使用包括mp3在内的多种声音格式,也能播放mpg文件和avi文件。无论同时播放几种声音和动画,只要你的cpu足够快,效果都很好。
directmediaxtra是通过microsoft的direct draw和direct sound功能来支持声音和动画播放的。因此,它不能运行在最早的windows 95中。流传较广的是directmediaxtra v1.4和v1.5版。1.4版对于音量的大小控制还不够完善,必须通过函数seticonproperty(@"directmediaxtra", #volume,0)来设定。其中,最后的参数0表示以100%的音量播放。如果觉得太大,可在-100到0之间变换,变换单位是分贝。1.5版中可以直接通过滑块来设定音量,.十分方便。
你可以到http://xtras.tabuleiro.com下载最新的directmediaxtra包,安装在xtras的目录中即可使用。使用方法是通过insert选单→tabilero xtras→ directmediaxtra。美中不足的是,要正常使用directmediaxtra必须注册。
mjsapi解决方案:背景midi+前景声音(二)
mjsapi是磨鉴室工作组出品的一个ucd外部函数插件,这是一个国产软件。
mjsapi提供对midi背景音乐的循环播放,使用非常方便,而且支持播放midi列表和乱序播放。其格式如下:
m_playmidilooppro(midilistfile,type),其中midilistfile为一个midi文件的列表,其内容是一个个的midi文件,每行一个。type是一个布尔变量,为false表示顺序播放,为ture表示按随机次序播放。
如果要停止播放midi,应该使用m_stopmidiloop()函数。
值得一提的是,mjsapi功能极为繁多。用它还可以制造不规则窗口和很多的新奇效果。你可以到http://wwww.mjssoft.com去下载试用,最新版本为v3.35。
新闻热点
疑难解答