我们在Phaser Game中使用AudioSprite
s作为角色的对话框。我们正在加载.mp3
和.ogg
个文件以支持各种浏览器。在我们的状态preload()
上加载文件后,我们会在播放前解码它们。
我们在Safari上遇到了一个问题,经过大约20分钟的游戏后,音频开始变慢和停止。由于音频精灵仅设置为播放一段时间,因此截止是有意义的,但我不知道为什么音频会减慢。
Chrome上的问题类似,但音频充满了静电。
音频精灵不是很大,VO是18MB,SFX是209kB,背景音乐是2.1MB。
这是调用要播放的音频的代码
/**
* Play an audio file
* @param soundKey {string} the preloaded sound or audio sprite key
* @param [marker] {string} the audio sprite marker key
* @param volume {int} the volume value; from 0-1
* @returns {Sound} a reference to the currently playing audio
*/
playAudio(soundKey, marker, volume = 1) {
if (!this.game.playerData.general.dialogue) { return null }
if (!this.game.cache.checkSoundKey(soundKey)) { console.warn('cannot find audio: '+soundKey); return null}
if (marker) {
let audio = this.game.sound.addSprite(soundKey)
if (audio.get(marker)) {
return audio.play(marker, volume)
}
else {
console.warn('No Marker: ', marker, ' for audio ', audio)
return null
}
} else {
let audio = this.game.sound.add(soundKey)
return (audio ? audio.play(volume) : null)
}
}
Phaser
实施隐藏了其他所有内容。