背景音乐频道的 corona 游戏 SDK。

我正在尝试在不同的.lua文件上播放不同的背景音乐。 任何一个单独的.lua文件都能正常播放,但在程序中切换时就不能正常工作。 在任何一个.lua文件的开头:

local backgroundMusic = audio.loadStream("bg3.mp3")
local backgroundMusicChannel = audio.play( backgroundMusic, { channel=1, loops=-1, fadein=5000 }  )

在转到其他场景之前:

audio.pause( backgroundMusicChannel )

我该怎么办!?

点赞
用户2549544
用户2549544

看起来您正在将 backgroundMusicChannel 的引用存储在一个本地变量中。您是否确保在调用 audio.pause(backgroundMusicChannel) 的部分中 backgroundMusicChannel 是可用的?

2013-08-20 11:56:01
用户2469861
用户2469861

我不确定问题的具体情况,但可以尝试以下方式:

audio.stop(backgroundMusicChannel)

或者

audio.dispose(backgroundMusicChannel)
2013-08-20 12:07:18
用户2186639
用户2186639

Audio 库使用 30 个不同的通道来播放流。当你调用 play 方法时,通常它会寻找一个空闲的通道,并将新的流分配给那个通道。但是在这里,你暂停了一个通道,这意味着指定的通道仍然是活跃的。因此,基本上你应该从参数中删除 channel = 1。不应该使用 channel 属性。或者你应该非常小心地处理这些通道分配。 另外,你也可以使用 audio.stop 函数来清除通道。

2013-08-20 15:16:31
用户1939453
用户1939453

我在 clean 函数中使用以下代码来停止音频播放。

local sound = audio.isChannelPlaying( backgroundMusicChannel )
if sound then
    audio.stop(backgroundMusicChannel)
    audio.dispose(backgroundMusicChannel)
end

你应该在 clean 函数中使用这段代码,并且当你在导航到另一个场景时,你必须调用该 clean 函数。

2013-08-22 07:36:24