![](/img/trans.png)
[英]Is there an equivalent of .currentTime = 0 for phaser 3 audio?
[英]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.