3.2 随机循环选择播放MIDI背景音乐
我们在上面介绍的“循环播放MIDI背景音乐”范例中只能播放一首MIDI音乐对象,这样显的比较单调,如果我们要实现多首MIDI背景音乐的随机循环选择播放,能实现吗?答案是肯定的。
在这里我们要介绍另外一个外部函数a5wmme.U32。这个函数包括各种多媒体的播放控制函数,如动画、CD、MIDI、WAV等的控制函数,其中我们可以利用的控制MIDI音乐播放的函数有:
MIDIPause()
MIDIPlay(fileName, tempo, wait)
MIDIPlaying()
MIDIPlaySegment(fileName, tempo, fromSeconds, forSeconds, wait)
MIDIResume()
MIDIStop()
a5wmme.U32对MIDI音乐的控制函数比起MidiLoop.U32可就强大多了。
在本范例中,有两个核心问题:一是如何实现随机选择不同的MIDI音乐的问题,二是如何让MIDI循环播放。解决第一个问题的方法是以所有要播放的MIDI声音文件名“创建”一个播放列表,这里“创建”的列表并不是真正存在的播放列表,而是通过系统函数“Catalog”将存放MIDI音乐的文件夹中的文件名以字符串的形式赋给变量,即所谓的播放列表,最后通过系统函数“Random”随机选择“播放列表”中的MIDI文件进行播放。而解决第二个问题的方法是利用了永久型的条件交互的一点技巧而已。一起来看看如何实现吧!
1、 执行界面预览,如图3.4

图3.4 范例程序执行效果
2、 程序的流程图如图3.5

图3.5 范例程序流程图
|