CCAudioEngine.js 里的 _id2audio 中的audioid 神秘消失(导致audio无法控制,无法停止播放)

表现的现象,主要是音频无法暂停,或者设置音量,无法停止播放,等等。
跟踪调试后,发现是 _id2audio 里面竟然没有这个audio id了,百分百确定之前并没有 stop 这个audio id,也没做过任何 uncache操作。
另外这个audioid 是在一连串的初始化中消失的,比如我连续play 了 4个loop的音频,正常情况下,都是4个连续的audioid,比如 1,2,3,4;不过有时候,中间突然间少了一个audioid ,变成1,2,4 , 3不见了 ,但是3其实已经在播放了,结果3停不下来,完全失控了。

比较麻烦的是,这个问题是概率性出现的…

目前猜测可能是这段代码是个导火索,但应该不是本质问题

主要调整是 把 this.id 换成闭包 id,原本的 this.id 使用的是复用对象池里的audio的id,这个或许有可能那个audio 的id,还没有被更新吧。

最后,这样的调整似乎确实起到效果了 。
但不确定会不会有其他问题,还是要麻烦引擎开发者们看下了 :grinning:

谢谢反馈。
在哪个平台比较容易出现这个问题?

您好,
版本是 v2.1.2 release
主要是微信小程序 和 web 都容易发生这个问题

你在正式版上测试一下,这个问题我们之前处理过。
https://github.com/cocos-creator/engine/pull/4793/commits/f416946c09cc9747599081e8ac1c39acef51f9cd

正式版是指2.1.2吗?

似乎我现在测试的版本应该已经包含这个了

目前 在用的版本,已经包括这个修改了

嗯 好的
我测试了一段时间,没有复现出现。
你能不给个demo,说下你的测试机型。