(v2.0.1)还是关于 cc.audioEngine 播放音频和 setFinishCallback 回调的bug

直接上代码:

@property({ type: cc.AudioClip })
clip1: cc.AudioClip = null;
@property({ type: cc.AudioClip })
clip2: cc.AudioClip = null;

onLoad() {
    let clip1ID = cc.audioEngine.playEffect(this.clip1, false);
    cc.audioEngine.setFinishCallback(clip1ID, () => {
        console.log('after clip1');
    });
}

playClip2() {
    cc.audioEngine.playEffect(this.clip2, false);
}

有两个音频 clip1 和 clip2,只对 clip1 设置了 setFinishCallback 回调,然后播放 clip2 (即调用 playClip2 方法),结果每次 clip2 音频播放结束,都会去触发 clip1 设置的 setFinishCallback 回调…下图是我调用了 13 次 playClip2 方法的结果:

然后原本的游戏音频+逻辑就都变得乱七八糟的了 T T

感觉反馈,应该已经修复了,如果你等不及的话,可以用 pr 进行修复 https://github.com/cocos-creator/engine/pull/3176 ,后续有什么问题可以在反馈过来

我现在用的是 v2.0.2 问题并没有解决啊 我现在用苹果6s 有时候 音效播放完以后 setFinishCallback 不会去走回调。

而且回调函数 setFinishCallback 不带参数了?之前的是有的呀~~
这样没法知道我停止的是哪个音效啊,难道只能楼上的那个 闭包匿名函数的方式?

2.0.2依旧这个问题。没有修复~