Phaser 사운드 문제를 도와 줄 사람이 있습니까?
TypeScript에서 사운드를 재생하는 버튼이 코딩되어 있지만 Chrome에서 버튼을 누르면 Phaser가 Chrome 콘솔에서 다음 경고를 표시합니다. 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 파일이 다른 assets 디렉토리를 찾고 있기 때문입니다. js 디렉토리에 mp3 파일을 배치하면 원래 코드가 작동하기 시작합니다. 이 mp3 파일은 디코딩 된 상태를 확인하지 않고 실행할 수있을만큼 라이트이지만'setDecodedCallback'을 사용하여 오디오 파일을 사용하기 전에 100 % 확실하게 디코딩합니다. 도와 주셔서 정말로 고맙습니다! – sora