最近做一个Laya3D项目 打包微信小游戏,使用Laya自带的SoundManager播放声音时加载报错
报错信息:
-------- -1 minisound error----------
{
code:-1
error:解码错误 AudioElementSourceNode process:first decoder state is error
}
解决方案:
使用微信播放声音接口
createInnerAudioContext()
playMusic(musicName: string, loops: number = 0): void {
this.music = musicName;
if (!SoundUtil.getInstance().isGameSound()) return;
let url = this.getSoundUrl(musicName);
if (GameData.isWxGame) {
var sound = Laya.Pool.getItem(musicName);
if (sound == null) {
sound = tt.createInnerAudioContext()
sound.src = Laya.URL.basePath + url;
sound.play();
sound.onEnded(() => {
Laya.Pool.recover(musicName, sound);
})
} else {
sound.play();
}
return;
}
Laya.SoundManager.destroySound(url);
let channel = Laya.SoundManager.playMusic(url, loops);
}