Я пытаюсь воспроизвести фоновый звук, только во время одной сцены. Когда эта сцена разрушена, звук должен исчезнуть, а затем остановиться. Затем, когда сцена воссоздается, звук должен начать воспроизводиться снова.
Вот что я пытаюсь:
local backgroundMusic
local backgroundMusicChannel
local function stopSound(event)
audio.stop(event.channel)
audio.dispose(event.handle)
backgroundMusic = nil
end
function scene:create(event)
backgroundMusic = audio.loadSound("music/intro.mp3")
backgroundMusicChannel = audio.play(backgroundMusic, {loops = -1, fadein = 3000, onComplete = stopSound})
end
function scene:destroy(event)
audio.fadeOut({channel = backgroundMusicChannel, time=2000})
end
Звук воспроизводится при первоначальном создании сцены и правильно затухает, но не воспроизводится снова при повторном создании сцены.
Когда я изменяю функцию уничтожения на:
function scene:destroy(event)
audio.fadeOut({channel = backgroundMusicChannel, time=2000})
audio.stop(backgroundMusicChannel)
end
звук не исчезает, потому что он немедленно останавливается, но он запускается снова правильно при следующем создании сцены.
Я также пробовал использовать audio.stopWithDelay, который правильно затухает, но точно так же не начинает воспроизводиться снова, когда сцена создается еще раз.
Если у кого-то есть какие-либо идеи о том, что здесь происходит, пожалуйста, дайте мне знать!