laya 微信小游戏 连续声音播放 异常处理
正常的声音播放很简单,但是我在微信小游戏中,快速的播放同一个声音,就会有问题,比如吃金币。最初是直接用一个声源,吃上金币就重复从头播一次,PC上测试,网页上测试都没问题,但一上真机微信小游戏,播放就不正常,只能播放一两次,而不是播放很多次。我怀疑是微信小游戏下,不能用LAYA接口,后面改成用WX的接口,还是一样有问题,最后为了解决这个问题,用了对象池,生成多个声音对象,解决这个问题,估计是微信小游戏中,不能一个声音对象在播放完前重复使用。下面是实际的代码例子。(这里用了WX的接口,按理用LAYA接口+pool,应该也是对的,没有测试)
//播放音效
private PlaySound(name) {
if (this.wx == null) {
Laya.SoundManager.playSound("res/Sound/" + name + ".mp3", 1, new Laya.Handler(this, this.onComplete));
} else {
var sound = laya.utils.Pool.getItem(name);
if (sound == null) {
sound = this.wx.createInnerAudioContext()
sound.src = "res/Sound/" + name + ".mp3";
sound.play();
sound.onEnded(() => {
laya.utils.Pool.recover(name, sound);
})
} else {
sound.play();
}
}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
