发新话题
打印

autherware 声音完全解决方案 

autherware 声音完全解决方案 

utherware 声音完全解决方案 2 L9 }9 E) D( z. ]) Z% S( r9 u8 z
请注意:此资料是网络收集。想菲已经对其中的内容进行了测试,但不保证所有的机器都能运行正常。如果出现问题,后果自负。( [7 g( d6 _+ N$ ]7 s! d# w

( N! H) L( t" V, r* i7 U( Y  标准声音解决方案:背景MIDI+前景声音(一)
3 a: |4 ^0 x& b; G; O* J  背景MIDI加前景声音是Autherware提供的标准多音同放解决方案,在各种多媒体软件中使用广泛,它主要是通过多媒体函数接口(MCI)来实现MIDI的播放。然而,MIDI函数不是Autherware自身的标准函数,它是由一个名为A5wmme.u32的多媒体函数包提供的。这个函数包没有包含在Autherware 5.0中,你必须到Macromedia的网站中去下载它(免费)。
2 t3 x% Z7 t% G) H, [7 U  在MIDI播放函数中,最重要的是两个函数:MIDIPlay和MIDIPlaying。MIDIPlay函数用于对MIDI进行播放,其格式为:
6 F# @9 h# x' W4 V; ]  errorCode := MIDIPlay(fileName, tempo, wait),其中,fileName为要播放的MIDI文件名;tempo为播放的节奏,一般为100,即按标准速率播放;wait为0表示作为背景播放(图标继续向下执行),为1表示作为前景播放(等待播放完毕再向下执行)。
1 @, ~5 ]3 D% ^- o7 R( o  MIDIPlaying函数用于返回MIDI当前的播放状态,其格式为:
' v, k+ J6 K( ]+ `9 s  result := MIDIPlaying() 3 c  w/ v4 B& N% D3 {' _
  如果返回为0则表示没有播放,为1表示正在播放。
$ o5 v+ y1 [, [2 p. a( f5 A  在MIDI播放中一个头疼的问题是如何实现MIDI的循环播放。单纯使用MIDIPlaying()函数,Autherware 并不会对它响应,解决的方法是使用系统变量:fulltime。在流程线上加入一个永久条件响应并把条件设定为MIDIPlaying()+FullTime=0+FullTime,然后在条件分支中加入MIDI播放图标即可。
5 S( ^) ^+ B( ^4 i  QuickTime解决方案:多声音合成之一 1 z7 Y- B: w- M) k/ K
  QuickTime多音回放方案是Autherware提供的另一种声音解决方案。使用前必须先在Windows里加装QuickTime多媒体播放软件,你可以在Apple公司的主页去下载,如今广泛使用的是QuickTime V4.1。由于QuickTime是Mac OS下极为重要的多媒体平台,因此支持的媒体格式特别多样。从MP3音乐到MOV格式的影像,甚至于连GIF格式的动画图像和FLASH动画都能加以使用。而且,使用MP3等音乐不受数目限制,因而使用方便。 0 B' T1 [& `: X9 p0 G* u
  Autherware中自带QuickTime的接口,可以使用QuickTime 3.0及以后的版本,然而为了使用较多的声音格式(如MP3),应当使用QuickTime 4.0及以后的版本。使用的方法是:通过Autherware的Insert选单→Media→Quicktime 3..即可。要注意的是,Autherware V5.1中对Quicktime的支持有问题,不能正常播放。解决的方法是把5.0版中Xtras目录下的QuickTime目录拷贝到V5.1相同目录下覆盖即可。请注意:使用Quicktime后将造成Autherware自身的多媒体图标无效果。 & Z" l; J/ j& R( {* R6 @; G  t
  使用QuickTime最大的问题是对于各个音源的音量控制十分不方便,而且在较老的声卡上,同时播放两种音源会产生间断性颤音现象,使用尚需改进。 9 {8 J, L% ~  s+ G7 A$ w& f2 x
  DirectMediaXtra解决方案:多声音合成之二 7 {1 g) b2 C* X
  DirectMediaXtra是笔者接触到的迄今为止最为完善的声音解决方案。同样是使用Autherware插件接口,DirectMediaXtra却提供了近乎完美的支持。它能使用包括MP3在内的多种声音格式,也能播放MPG文件和AVI文件。无论同时播放几种声音和动画,只要你的CPU足够快,效果都很好。
: g( H* r$ V9 }  E$ ^  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版中可以直接通过滑块来设定音量,十分方便。 . d3 f- U  \( Y) _$ h$ K
  你可以到http://xtras.tabuleiro.com下载最新的DirectMediaXtra包,安装在Xtras的目录中即可使用。使用方法是通过Insert选单→Tabilero Xtras→ DirectMediaXtra。美中不足的是,要正常使用DirectMediaXtra必须注册。

TOP

autherware 声音完全解决方案 

我想动态调节MIDI音乐的音量,该如何实现?我已经能调节WAV或MP3的音量,是用BUDWAV.U32中的Wavesetvolumn(0,lvol,rvol)来实现的。有的文章介绍用budapi.u32中的basetvolumn("midi",vol),可我试了,根本没反应?哪位大侠能指教?谢谢!
  z& f- g0 l1 t( |( _xzfwq@sohu.com  

TOP

autherware 声音完全解决方案 

[quote][b]下面引用由[u]xzfwq[/u]在 [i]2003/05/26 03:13pm[/i] 发表的内容:[/b]6 w; D# A! b% M  e! M, Y4 m9 d, g$ w
我想动态调节MIDI音乐的音量,该如何实现?我已经能调节WAV或MP3的音量,是用BUDWAV.U32中的Wavesetvolumn(0,lvol,rvol)来实现的。有的文章介绍用budapi.u32中的basetvolumn("midi",vol),可我试了,根 ...
8 D( x2 y% R, o( E) B4 V  J[/quote]' r' o( f& J" a& ]( G* P: F, s
你这个控制声音的,给我发个例子好吗?" b- ~7 [0 a/ K/ I

TOP

发新话题