设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1647|回复: 0
打印 上一主题 下一主题

[已经过期] 调用MCI播放MIDI问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3044
在线时间
1053 小时
注册时间
2011-8-16
帖子
242
跳转到指定楼层
1
发表于 2016-2-5 02:41:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
众所周知,在Window 7 及更高版本的系统上,在RM内播放MIDI音乐会出现明显的卡顿。每次重开工程或游戏,第一次播放MIDI都会造成数秒的假死。
我觉得通过重写RM的Audio模块来解决这个问题或许可行,于是搜寻到了以下两种音频模块:
MCI Audio Player
[RMXP] 扩展音频模块 v1.03
前者重写了Game_System和Audio模块的方法,使得通过事件指令播放的BGM也通过MCI来播放;后者只能通过脚本调用。
经过测试,发现两个脚本都有共同的问题:无法正确设置MIDI的音量,会导致所有MIDI音乐的淡入淡出失效。
紫苏的扩展音频模块提供了 AudioEx.setVolume() 方法,但实际测试发现它对MIDI不起任何作用。
MCI Audio Player 的作者给出了这样的解释:
Due to vast differences in how the format is handled, some of this player's features do not work with MIDI, most notably volume control, which also
effects fading. I have created alternate controls to control MIDI volume, but they can only work with the sacrifice of many other functions, and the volume
applies to ALL playing MIDIs, not just the one the volume is applied to. I decided this was not worth it, so I omitted volume control. If you are willing to make
them sacrifices, you can enable this mode by setting MIDI_MODE to true. If you your game relies heavily on MIDI, but you still would like to use this script,
there are conversion programs available, which I can assist you with if need be.

简单地说,调节MIDI的音量会导致所有MIDI的音量一同改变,作者认为这样不值得,所以默认设置是不允许控制其音量。我试着开启了音量控制,并在事件中使用“淡出BGM”,
淡出过程的前几秒问题不大,但在最后1秒会出现奇怪的破音(我也不知该怎么描述),然后……整个游戏的所有音效都播不出来了。
附上我的测试工程: 测试.zip (625.69 KB, 下载次数: 59)

我只想解决RM在Win7下播放MIDI造成的卡顿,而上面两个脚本所提供的一系列增强功能倒是次要的。
有谁能解决这个问题吗?





点评

我是把MIDI转成其他格式,比如MP3、OGG  发表于 2016-2-5 09:10
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-27 08:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表