Phaserのサウンドに関する問題をお手伝いできますか?
TypeScriptでサウンドを再生する機能を持つボタンをコーディングしましたが、クロムのボタンを押すと、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はそれを見つけることができるはずです。
ありがとうございます。私がサウンドを再生できなかったのは、トランスファイルされたjsファイルが別のアセットディレクトリを探しているからです。 jsディレクトリのmp3ファイルを配置した後、元のコードが動作し始めました。このmp3ファイルは、デコードされた状態をチェックすることなく実行するのに十分なほど軽いですが、 'setDecodedCallback'を使用して、それを使用する前にオーディオファイルがデコードされていることを100%確かめます。あなたの助けをありがとう! – sora