在 Phaser 中循环播放音频

Looping audio in Phaser

我刚开始使用 Phaser 制作一个简单的平台游戏,我是新手。

我已经设法播放音乐,但无法循环播放,Google 没有帮助。

这是我正在使用的音频代码,有什么建议吗?

game.load.audio('hotttt', ['assets/audio/hotttt.mp3', 'assets/audio/hotttt.ogg']);

music = game.add.audio('hotttt');

music.play();

您将需要创建一个新的 Phaser.Sound 对象并启用 loop

game.load.audio('hotttt', ['assets/audio/hotttt.mp3', 'assets/audio/hotttt.ogg']);

// *true* param enables looping
music = new Phaser.Sound(game,'hotttt',1,true);

music.play();

可以参考文档- Phaser.Sound

首先,像以前一样加载音频文件,然后为音频本身创建实例。

示例:

game.load.audio('background_music', ['assets/sounds/background_music.mp3', 'assets/sounds/background_music.wav']);

backgroundMusic = game.add.audio('background_music');
backgroundMusic.loop = true; // This is what you are looking for
backgroundMusic.play();

希望对您有所帮助!

最适合我的解决方案是:

music = game.add.audio('yourMusicFile');
music.loopFull()

根据 v2.4.4 的 docs(我用 2.6.1 对其进行了测试),您可以将一个额外的参数传递给 game.add.audio() 循环函数

例子

game.load.audio('background', ['assets/audio/background.wav'])

const backgroundSound = game.add.audio('background', 0.5, true) // here "true" means to loop

backgroundSound.play()

对我来说效果很好

正在查看此 Phaser 3 主题的任何人。

在 preload() 中加载音乐

this.load.audio('musicaudio', 'assets/musicl.mp3');

然后在你自己的函数中或者create()

var music = this.sound.add('musicaudio');
music.setLoop(true);
music.play();

我不太明白初始化音频背后的机制,但为了在我的 Chrome 环境中这样做,我必须在初始配置声明中设置它。

audio: {
        disableWebAudio: true,
        noAudio: false
    },

P.S。我在某处读到你不应该使用 mp3 进行循环,但它对我来说很好用。也许有一个短暂的停顿。