Может ли кто-нибудь помочь мне с проблемой звука Phaser?
Я закодировал кнопку с функцией, которая играет звук в машинописном, но при нажатии на кнопку на хроме, Phaser дает мне следующее предупреждение на хромированной консоли: Phaser.Cache.getSound: Key "sample" not found in Cache.
На первом, я думал, что mp3 файл имеет не было полностью загружен, когда я нажал на кнопку, но даже когда я жду достаточного количества времени, ситуация все то же ...Воспроизведение аудио с помощью Phaser
export class PlayState extends Phaser.State {
private sampleSound: Phaser.Sound;
private testButton: Phaser.Sprite;
preload() {
this.load.image("test", "assets/image/test.png")
this.load.audio("sample", "assets/audio/sample.mp3");
}
create() {
// Add test button
this.testButton = this.add.sprite(50, 50, "test");
this.testButton.anchor.setTo(0.5);
this.testButton.inputEnabled = true;
this.testButton.events.onInputDown.add(this.test);
// Add audio
this.sampleSound = this.add.audio("sample");
}
private test =() => {
this.sampleSound.play();
}
}
Я, конечно, быть_наст файл sample.mp3 под активами/каталог аудио, поэтому Phaser должен уметь его найти.
Спасибо за ваш комментарий. Причина, по которой я не мог воспроизвести звук, заключалась в том, что файл transpiled js ищет каталог различных ресурсов. После того, как я поместил mp3-файл в каталог js, исходный код начал работать. Этот mp3-файл достаточно велик, чтобы работать без проверки декодированного состояния, но я буду использовать 'setDecodedCallback', чтобы сделать 100% -ный звук аудиофайла декодирован перед его использованием. Большое спасибо за вашу помощь! – sora