这是我第一次在 Phaser (3.60.0) 游戏中添加音频,因此我可能有一个明显的错误,但当我在线搜索时,我找不到解决我的问题的答案。Firefox 控制台的错误是:
Uncaught Error: Audio key "backgroundMusic" missing from cache
并由这一行触发:
//create functuon:
const backgroundMusic = this.sound.add('backgroundMusic');
this.backgroundMusic.loop = true;
this.backgroundMusic.play();
其他一些可能有用的信息:
//preload function:
this.load.audio('backgroundMusic', '.\music\backgroundMusic.mp4');
//config:
const config = {
type: Phaser.AUTO,
width: 500,
height: 500,
physics: {
default: 'arcade',
arcade: {
debug: false
}
},
scene: {
preload,
create,
update
}
};
我需要更改或添加什么才能使错误消失?
问题是您使用的是mp4文件扩展名,通常是视频。并且您应该使用类型/扩展名的文件: ogg、mp3、m4a,... (检查此列表的完整性),并取决于浏览器支持。
理论上,您可以将文件重命名为
backgroundMusic.mp3
左右。但更好的方法是将其转换为“正确的”文件类型/格式。(提示:加载多种文件类型以获得最佳的浏览器兼容性。像这样
this.load.audio('title', [ 'music/Title.ogg', 'music/Title.mp3', 'music/Title.m4a' ]);
,请查看文档以了解详细信息)