1、淡入音乐的效果
2、在音乐播放结束时的操作
3、获取一首音乐的状态——没准备好、正在播放、暂停、停止
4、改变 MIDI 的播放速度
5、播放时改变音乐节奏(不包括改变 MIDI 的声调)
6、播放时随时移动播放位置的指针
7、同时播放多首音乐
AudioEx.quickPlay(device, filename, volume, speed, fade)
这个函数可以快速的播放指定的音频文件,仅仅用于第一次打开音频文件(设备)。
device 是设备的标识
filanme 是文件路径(相对/绝对)
volume 是音量,取值范围 0-1000,1000 是默认值,表示最大音量
speed 是播放速度,取值范围 500-1500,1000 是默认值,表示正常速度
fade 是音频淡入的秒数(近似值),默认是 0
例子:
AudioEx.quickPlay("我的音乐1", "Audio/BGM/神奇的九寨.mp3")
AudioEx.quickPlay("我的音乐2", "C:/越剧 天上掉下个林妹妹.mp3", 1000)
AudioEx.quickPlay("我的音乐3", "avril lavigne-girlfriend", 500, 1000)
AudioEx.quickPlay("我的音乐4", "F:/音乐/许嵩 - 断桥残雪.mp3", 1000, 1200, 3)
AudioEx.continue(device, fade)
这个函数从暂停状态恢复一个设备的播放。
device 是设备的标识
fade 是音频淡入的秒数(近似值),默认是 1
例子:
AudioEx.continue("我的音乐1")
AudioEx.continue("我的音乐2", 3)
AudioEx.fade_out(device, sec, from, to, end_proc)
这个函数淡出一个设备的音量。直接调用的话常用于淡出后关闭音频设备(停止播放)。
device 是设备的标识
sec 是淡出的秒数秒数(近似值),默认是 1
from 是开始淡出的音量(0-1000),默认是 1000
to 是淡出结束时的音量(0-1000),默认是 0
end_proc 是淡出后需要进行的操作,默认是 0:
0 表示关闭设备(释放内存,该设备之后无法通过设备标识访问)
1 表示暂停设备(不释放内存,稍后通过设备标识可以恢复播放)
2 表示停止设备(不释放内存,稍后通过设备标识可以重新播放)
例子:
AudioEx.fade_out("我的音乐1")
AudioEx.fade_out("我的音乐2", 5)
AudioEx.fade_out("我的音乐3", 5, 1000)
AudioEx.fade_out("我的音乐4", 5, 800, 0)
AudioEx.fade_out("我的音乐5", 5, 1000, 200, 1)
AudioEx.position(device)
这个函数返回一个设备当前播放(指针)位置的整数,单位是毫秒。
device 是设备的标识
例子:
p "当前播放位置为:" + AudioEx.position("我的音乐1") + "毫秒"
AudioEx.length(device)
这个函数返回一个设备音频长度的整数,单位是毫秒。
device 是设备的标识
例子:
len = AudioEx.length("我的音乐1")
print "音乐长度为:" + len / 1000 / 60 + "分" + len / 1000 % 60 + "秒"
AudioEx.mode(device)
这个函数返回一个设备当前状态的字符串,可以是以下几种:
"not ready" = 还未准备好播放
"paused" = 暂停中
"playing" = 播放中
"stopped" = 播放停止了(除非调用了 AudioEx.stop,否则 stopped 表示播放结束)
device 是设备的标识
例子:
if AudioEx.mode("我的音乐1") == "stopped"
print "音乐播放结束!"
end
AudioEx.timeout(device, time)
这个函数设置一个设备的暂停状态最大持续时间(超时),如果设为 0 则没有超时。
device 是设备的标识
time 是持续时间(毫秒)
自动循环音乐,只要在调用 play 函数的时候传递一个 "repeat" 给它的第二个参数即可:
AudioEx.open("music", "1.mp3")
AudioEx.play("music", "repeat")
以下引用灼眼的夏娜于2009-4-24 11:48:41的发言:
不错 支持下!!~
以下引用小叽于2009-4-24 11:55:41的发言:
这个东西有实际的应用价值! 如果可以对OGG支持将更完美!
OGG是我比较常用的格式!游戏的大小会影响下载量.用OGG格式可以大大减少游戏体积.
以下引用迅雷進于2009-4-24 12:14:56的发言:
实在是太棒啦~
前辈的实力实在是不得不膜拜的说!
以下引用迅雷進于2009-4-24 12:32:43的发言:
对了,
那个重复音乐是怎样做的呢?
小弟看了很久还是无法看个头绪出来的说…
请前辈指教~
以下引用紫苏于2009-4-24 12:42:42的发言:
地图右上角的并行事件循环判断《浏阳河》当前的位置,单位是毫秒,当大于 20000 毫秒(20 秒)的时候就 seek 跳转回 17000 毫秒(17秒)的位置继续播放,这样播放位置又会在3秒后到达 20 秒的位置,再次跳回 17 秒,这就是个循环了~
以下引用迅雷進于2009-4-24 13:07:20的发言:
看到了~
再来一个问题,
只要是那个重复的开关没关上的话,
无论到哪一个地图的话音乐还是一样一直重复的吗?
以下引用TERENCE于2009-4-24 15:30:47的发言:
LZ的扩展音频模块实在太强了,
本龙仔做的BGM前奏+无限循环主旋律就整个弱掉了
(http://rpg.blue/viewthread.php?tid=123326)
好想哭啊~~
以下引用一路一风尘于2009-4-24 17:55:46的发言:
记得以前用MCI在播放一些midi音乐时与RM本身播放的声音存在差异,好像多通道播放会出现噪音?印象很浅淡了。
以下引用TERENCE于2009-4-24 15:30:47的发言:
LZ的扩展音频模块实在太强了,
本龙仔做的BGM前奏+无限循环主旋律就整个弱掉了
(http://rpg.blue/viewthread.php?tid=123326)
好想哭啊~~
[本贴由作者于 2009-4-24 15:39:03 最后编辑]
以下引用swabwind于2009-4-25 0:03:43的发言:
汗,龙哥的那个脚本完全被取代了= =
而且没隔几天。。。囧
LZ你强。。。
以下引用威廉华莱士于2009-4-25 12:47:35的发言:
不错,楼主很有心,写的很详细...支持!
以下引用灼眼的夏娜于2009-4-25 16:44:57的发言:
tempo tempo_value:
驱动程序无法识别指定的命令参数 异常- -bb
话说mciGetErrorString 还是用W函数吧= =还有@msg 转UTF8 - -b
以下引用赛露休斯于2009-4-26 17:20:54的发言:
我为什么范例一打开就出现错误。。。。。
以下引用紫苏于2009-4-26 22:52:01的发言:
刚发现 1.01 的范例有 BUG,已经修复了,请重新下载一次吧~
另外,请问你的操作系统是否 vista?
以下引用赛露休斯于2009-4-26 23:10:14的发言:
XP的操作系统,1.0和1.01 的范例都试过了,依然是同样的错误。。
以下引用迅雷進于2009-4-27 9:20:56的发言:
紫苏君,
当使用循环MP3的功能重复MP3的时候是会停顿一下的吗?
AudioEx.open("ME",
"Audio/ME/006-Defeat02.mid")
AudioEx.play("ME", "repeat")
以下引用紫苏于2009-4-27 6:41:49的发言:
所有事件都出错?试试播放 ME 的那个,还有换一首 mp3 播放试试看~
以下引用aecher于2009-5-10 17:43:26的发言:
有个问题:读档之后上次正在播放的音乐就没了。但是设备名依然被占用着。
以下引用后知后觉于2009-5-11 14:38:39的发言:
我发现了一个应该算是BUG的东西吧
就拿 浏阳河 这3字来说吧
如果用1000的速度唱这3字
当唱玩浏阳的时候立刻把速度改成1500
这个时候效果正常,接下来唱的是河
但是如果把速度交换一下
一开始用1500的速度唱,唱玩浏阳然后立刻把速度改回1000
这个时候唱的就不是河了,而是不知道唱到哪一段去了
以下引用玄月于2009-5-29 15:28:01的发言:
紫苏大……膜拜一下,我终于可以从用coolpro切开音频的噩梦中走出来了
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |