随机循环选择播放MIDI背景音乐

2016-03-18 16:34 3 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享随机循环选择播放MIDI背景音乐,希望可以对大家能有小小的帮助。

【 tulaoshi.com - 设计软件 】


  我们在上面介绍的“循环播放MIDI背景音乐”范例中只能播放一首MIDI音乐对象,这样显的比较单调,如果我们要实现多首MIDI背景音乐的随机循环选择播放,能实现吗?答案是肯定的。

  在这里我们要介绍另外一个外部函数a5wmm(图老师整理)e.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 范例程序流程图
3、操作步骤:

1) 新建一个文件,并调入外部函数a5wmme.U32的相关扩展函数:

MIDIPlay(fileName, tempo, wait)

这个函数的功能即播放指定的MIDI音乐文件,其中“filename”参数即指定播放的MIDI音乐文件名;“tempo”参数是播放MIDI的速率,例如tempo =100表示以正常的速率播放MIDI;“wait”参数是播放MIDI的等待时间,例如wait=0即为立刻播放指定的MIDI音乐。

MIDIPlaying()

判断当前是否正在播放MIDI音乐,如果条件为真则返回“1”,条件为假则返回“0”

MIDIStop()

停止当前正在播放的MIDI音乐

2) 设置屏幕大小和背景,如图3.6和图3.7所示



图3.6 设置演示窗口大小



图3.7 设置范例的背景



图3.8 创建“播放列表”的内容

3) 创建“播放列表”,如图3.8,在计算图标中写入以下代码:

Midilist:=Catalog(FileLocation^"midi","f") ----把MIDI文件夹下的MIDI文件名

MidiNum:=LineCount(Midilist) ----赋值给字符串变量Midilist,实现

Midilist_Bak:=Midilist ----随机选择MIDI文件

MidiNum_Bak:=MidiNum

RamdonNum:=Random(1,MidiNum,1)

CurrentFile:=GetLine(Midilist,RamdonNum)

DeleteLine(Midilist,RamdonNum)

MidiNum:=MidiNum-1
4) 开始播放MIDI文件,并进行随机循环选择控制。

(1) 在交互“MidiLoop”右边添加一永久条件交互,条件为“~(MIDIPlaying()&Sec)”返回类型设置为“Return”,相关设置如图3.9所示;在计算图标里写入以下代码,如图3.10所示:

----判断恢复“播放列表”,即实现循环的目的

if MidiNum=0 then

Midilist:=Midilist_Bak

MidiNum:=MidiNum_Bak

end if

----继续随机选择播放新的MIDI文件

RamdonNum:=Random(1,MidiNum,1)

CurrentFile:=GetLine(Midilist,RamdonNum)

Midilist:=DeleteLine(Midilist,RamdonNum)

MidiNum:=MidiNum-1

MIDIPlay(FileLocation^"midi"^CurrentFile,100,0)



图3.9 永久条件的设置



图3.10 永久条件交互的执行内容

为什么要设置永久条件为“~(MIDIPlaying(

12下一页

来源:https://www.tulaoshi.com/n/20160318/1890226.html

延伸阅读
标签: 电脑入门
    给大家推荐4款QQ空间免费播放器代码,具体内容如下: 旋律播放器:javascript:window.top.space_addItem(6,1228,0,0,200,200,0); 水晶年代播放器:javascript:window.top.space_addItem(6,703,0,0,200,200,0); 音乐的播放器代码:javascript:window.top.space_addItem(6,702,0,0,200,200,0); MP3的播...
  一:选择插入—影片和声音—文件中的声音。     二:在弹出的窗口中选择要插入的音乐文件,然后点击确定。     三:在弹出的对话框中点击自动。     四:接下来点击幻...
/*========================Pragramme Design=============================*/ /* @程序说明:使用AudioClip类控制播放的音乐文件 */ /* @程序目的:线程的运用 */ /* @Writen by :kanker007 */ /* @Date:2005-05-11 */ /*=====================================================================*/ /*----------------------------------...
QQ空间怎么添加背景音乐?QQ空间添加背景音乐教程   QQ空间自定义背景音乐并不需要QQ绿钻来开通,只需按照本文的图文教程操作即可享受永久免费背景音乐,让你的QQ空间瞬间高大上。 QQ空间背景音乐怎么免费添加 1、首先在电脑上登录自己的QQ空间,然后在打开的页面单击这个选项,如下图所示。 2、然后在打开的页面,...
WIDTH="550" HEIGHT="400" CODEBASE="http://active.macromedia.com/flash3/cabs/swflash.cab#version=3,0,0,0"> PLAY="false" LOOP="false" QUALITY="autohigh" BGCOLOR="#FFFFFF" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"> 之所以在EMBED标签的外面...

经验教程

228

收藏

72
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部