AW播放声音使用MCI,独占式播放,不能同时播放二个或更多的WAV声音。
而DIRECTMEDIA XTRAS可以同时播放多个动画或声音文件。
于是用DIRECTMEDIA XTRAS播放背景音乐与人声解说。发觉这样做效果还是很不错的。
====================================================
附测试程序截图!
图片如下:
=======================
程序解说:
-------------
1、这个语句:
SND:=Round(GetIconProperty(@"声音",#volume))
可以将DMX的播放音量值读出来并赋给SND(自定义变量)。
2、这个语句:
SetIconProperty(@"声音",#volume,Round(PathPosition@"SLIDER"))
可以将通过拉动滑块的位置来改变音量大小。
3、问题:改变音量后,正在播放的声音不会改变音量。只有重新播放,新的音量设置值才会有起作用。
==========================
真的是太糟了:因为我想用函数来改变解说或背景音乐的音量大小,对于背景音乐倒是可以重新播放一次,但对于人声解说这样显然不合理。
=============================
通过WINDOWS系统的音量控制的话,那就解说或背景音乐同时改变音量。(我用的解说和背景音乐二个均是WAV声音。)
结论:通过ALTOOLS.u32外部函数改变WINDOWS系统的WAV声音,然后再通过DMX的声音控制函数调整背景音乐的相对音量。
即调整WINDOWS系统的WAV声音的音量时,二者同时改变。
改变背景音乐的音量可以不影响人声解说的音量。
本人认为这样是在AW中,解决同时播放二个(或以上)WAV与MP3声音,并控制其音量的最佳解决方案。
我不推荐背景音乐采用MIDI的做法。MIDI在不同的声卡上播放的效果相差较大,有的声卡上简直有点让人难以忍受!
不知道各位大侠如何认为?
+++++++++++++++++++++++++++++++++++++++++++++++++++++
参考链接:DREAMEXPRESS系列(一):
http://www.5d.cn/bbs/NewsDetail.asp?id=950345