0

我正在尝试在不同的 .lua 文件上播放不同的背景声音。任何 .lua 都可以独立工作,但是当我在程序中在它们之间导航时无法正常工作。在任何 .lua 文件的开头:

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

在去其他场景之前:

audio.pause( backgroundMusicChannel )

我该怎么办!?

4

4 回答 4

4

我不完全知道问题,但尝试这样:

audio.stop(backgroundMusicChannel)

或者

audo.dispose(backgroundMusicChannel)

于 2013-08-20T12:07:18.343 回答
1

看起来您正在将对您的引用存储backgroundMusicChannel在局部变量中。必须确保backgroundMusicChannel在您调用的部分中可用audio.pause(backgroundMusicChannel)

于 2013-08-20T11:56:01.270 回答
0

我使用此代码在 clean 函数中停止音频。

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

您应该在您的 clean 函数中使用它,并且当您导航另一个场景时,您必须调用该 clean 函数。

于 2013-08-22T07:36:24.330 回答
0

音频库使用 30 个不同的通道来播放流。当您调用播放功能时,通常它会寻找一个空闲频道并将新流分配给该频道。但是在这里您正在暂停一个频道,这意味着指定的频道仍然处于活动状态。所以基本上你应该从你的论点中删除 channel = 1 。您根本不应该使用通道属性。或者你应该非常小心地处理这个频道分配。或者你也可以使用 audio.stop 功能来清除频道。

于 2013-08-20T15:16:31.757 回答