Project1

标题: 如何預先載入音訊和同時播放多個音訊? [打印本页]

作者: nokaiwai    时间: 2011-11-20 23:44
标题: 如何預先載入音訊和同時播放多個音訊?
使用Audio模塊的話好像只可以播放2個
想使用API32,卻沒找到任何有關的函數

而且播放的音頻需要預先載入,不然會卡

正在模擬一個"勁樂團 MANIA"的遊戲,就是音符掉下來,像"太鼓達人" 的遊戲
需要同時播放很多很短的音訊

因此,目標是~
一個預先載入音訊的腳本
播放音訊的腳本~~(最大播放數目:20)

希望各位大大幫忙研究一下dsu_plus_rewardpost_czw
作者: 小白玩家    时间: 2011-11-20 23:53
好像XP VX都不能同时播放

作者: 精灵使者    时间: 2011-11-21 00:27
多个音轨可以用se(se的播放是不会重叠的)
作者: nokaiwai    时间: 2011-11-21 01:20
本帖最后由 nokaiwai 于 2011-11-21 01:27 编辑

那麼如何才能使用事先載入了的音檔呢?
作者: 各种压力的猫君    时间: 2011-11-21 01:53
本帖最后由 各种压力的猫君 于 2011-11-21 01:57 编辑

传送门:http://rpg.blue/forum.php?mod=vi ... amp;highlight=music
呃死链了……我补档: MusicGame.rar (370.13 KB, 下载次数: 41)
作者: nokaiwai    时间: 2011-11-21 07:48
本帖最后由 nokaiwai 于 2011-11-21 08:43 编辑

壓縮檔意外結束... 是我的問題嗎>.<?








到過 http://rpg.blue/article-40648.html 下載了.可是音檔好像不是事先載入的?
作者: wbsy8241    时间: 2011-11-21 09:43
.ogg 格式的文件需要全部载入完再播放,所以有延迟

请转成其他常见格式
作者: nokaiwai    时间: 2011-11-26 10:33
在某某朋友的電腦下.WAV 還是有延遲.
真的沒有把音樂先載入到內存.再由內存讀取的方法嗎?
作者: hcm    时间: 2011-11-30 00:25
nokaiwai 发表于 2011-11-26 10:33
在某某朋友的電腦下.WAV 還是有延遲.
真的沒有把音樂先載入到內存.再由內存讀取的方法嗎? ...

转成mid或mp3试试,同时播放也许BGM/SE/BGS/ME几个并列,似乎也不错。
作者: 第七水螰    时间: 2011-11-30 01:10
http://rpg.blue/forum.php?mod=viewthread&tid=123477

這個可以異步播放多個非 MIDI 音頻,實際上就是調用了 Windows 的一個遺留接口 MCI(多媒體控制接口),一個建立在 Winmm.dll 和 Msacm32.dll 等底層多媒體控制接口的高層接口。默認的 MIDI 設備沒有合成器,所以只能同時播放一個流。
作者: nokaiwai    时间: 2011-12-1 17:09
本帖最后由 nokaiwai 于 2011-12-4 11:28 编辑

因為製作中的遊戲可以說只是一個解碼器.歌曲也是開放的.也就是說玩家可以自行製作歌曲文件.而且另一重點是我想兼容"O2MANIA"(某音樂遊戲)的作品(有很多作品本來是用OGG MP3 WAV 等等格式輸出的).所以把音檔轉格式會很花功夫...
不過在此感謝各位大大熱心的幫助


nokaiwai于2011-12-4 00:50补充以下内容:
研究好了 結果如下
  1. $mci = Win32API.new("winmm", "mciSendStringW", ['P', 'P', 'I', 'L'], 'L')
  2. $filename
  3. #載入
  4. $mci.call("open #{$filename}",0,0,0)
  5. #播放
  6. $mci.call("seek #{$filename} to start",0,0,0)
  7. #釋放
  8. $mci.call("close #{$filename}",0,0,0)
复制代码
感謝各位熱心的幫忙!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1