Acabo de empezar a hacer un simple juego de plataformas con Phaser, soy nueva en esto.

Logré reproducir música, pero no puedo hacer que se repita y Google no me ha ayudado.

Aquí está el código de audio que estoy usando, ¿algún consejo?

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

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

music.play();
1
Ger Mc 10 dic. 2015 a las 22:41

5 respuestas

La mejor respuesta

Deberá crear un nuevo objeto Phaser.Sound y habilitar 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();

Puede consultar la documentación: Phaser.Sound

4
mjwjon 11 dic. 2015 a las 04:17

La mejor solución que funciona para mí es esta:

music = game.add.audio('yourMusicFile');
music.loopFull()
2
User 987 15 jul. 2017 a las 17:05

De acuerdo con el docs para v2.4.4 (y lo probé con 2.6.1) puede pasar un argumento adicional a la función game.add.audio() para el bucle

Ejemplo

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

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

backgroundSound.play()

Eso funcionó bien para mí

4
Javier Fernandes 20 may. 2018 a las 16:00

Cualquiera que esté mirando este hilo para Phaser 3.

Cargar música en preload ()

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

Luego en su propia función o create ()

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

Todavía no entiendo la mecánica detrás de la inicialización de audio, pero para hacerlo en mi entorno Chrome tuve que configurar esto en la declaración de configuración inicial.

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

PD Leí en alguna parte que no deberías usar mp3 para hacer un bucle, pero funciona bien para mí. Quizás haya una breve pausa.

1
user2694864 25 ene. 2019 a las 05:52

Primero, carga el archivo de audio como lo hizo y luego crea la instancia para el audio en sí.

Ejemplo:

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 lookig for
backgroundMusic.play();

¡Espero que ayude!

5
FlokiTheFisherman 26 mar. 2016 a las 02:52
34210393