2.2.0 iOS音效切后台回来bug导致崩溃

引擎版本:2.2.0
xcode:11.2
iOS:13.2

在游戏内有大量的音效在播放,然后切到后台,等待几秒钟,然后在切回来,直接崩溃。(重现概率大概30%)
发现是AudioEngine-inl 里面_audioPlayers id对应的AudioPlayer为null,
暂时的解决方案是 在AudioEngine-inl.mm里面在所有用到_audioPlayers的地方判断AudioPlayer是否为空,为空的时候特殊判断一下(比如continue,return等操作)。

看官方有没有更好的解决方案。

请问项目里,有在 cc.game.EVENT_HIDE 事件里做过什么音频操作吗
比如 停止音频播放

我也碰到了,audioengine.cpp remove方法判断下breakaudioid是否存在这个值,有就删除。还有个地方是lazyinit,把addcustoneventlistner提取到初始化判断里。

整个游戏全局搜了都没有EVENT_HIDE相关的代码哈。
我们是一个打砖块的游戏,打中砖块就有声音,游戏内有大量的球和砖块,所以会有很多音效同时播放,我们测试手速有点快,来回切两下后台就挂了。

感谢反馈,可以参考下这个 pr 的修复
https://github.com/cocos-creator/cocos2d-x-lite/pull/1930/files

按照PR修改之后,切换后台,仍然崩溃到update

小心翼翼的加了个判断,不知道会不会有啥问题

好像没有崩溃了