-
Creator 版本:2.1.3
-
目标平台: Web
-
详细报错信息,包含调用堆栈:不报错
-
重现方式:
1、准备两个音频,一个拖动到节点上(音频A),一个通过动态加载(音频B)(注意设置成DOM Audio模式)的形式获取(见下面的代码)
2、然后先播放节点上的音频A,此时正常
3、然后再播放动态加载的音频B,此时播放的仍然是音频A -
出现概率:100%
play (type) {
const cpt = this.getComponent(cc.AudioSource)
if (type.startsWith('tts')) {
// 这里是动态加载的资源,并且加载模式设置为 DOM Audio,
// 如果设置为 Web Audio 则没有此 bug
cc.loader.loadRes(type, cc.AudioClip, (err, audioClip) => {
if (!err && audioClip) {
cpt.clip = audioClip
cpt.play()
}
})
} else {
// 这里是 Node 上的 AudioClip,如果先播放了这里的音频
// 后续再播放上面动态加载的音频则实际播放出来的仍然是当前这个音频
const audioSrc = this[`${type}Clip`]
if (audioSrc) {
cpt.clip = audioSrc
cpt.play()
}
}
}