簡體   English   中英

在 Phaser 中循環音頻

[英]Looping audio in Phaser

我剛剛開始用 Phaser 制作一個簡單的平台游戲,我是新手。

我設法讓音樂播放,但無法讓它循環播放,谷歌也沒有幫助。

這是我正在使用的音頻代碼,有什么建議嗎?

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

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

music.play();

首先,像之前一樣加載音頻文件,然后為音頻本身創建實例。

例子:

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();

希望能幫助到你!

您需要創建一個新的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

根據 v2.4.4 的文檔(我用 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()

這對我來說很好用

對我有用的最佳解決方案是:

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

任何正在查看 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
    },

PS 我在某處讀到你不應該使用 mp3 進行循環,但它對我來說很好用。 也許有一個短暫的停頓。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM