AudioEngine 在音频结束和中止状态一起触发时会引起崩溃的问题

1.5.2版本 - [Engine] 修复 AudioEngine 在音频结束和中止状态一起触发时会引起崩溃的问题
使用1.5.1版本后,程序总是会莫名其妙的闪退,看1.5.2的更新日志,发现有这个bug,猜测可能是这个问题,但是目前升级版本代价太大,目前只能想办法解决这个崩溃的问题,
请教大神如何解决这个bug?避免出现音频结束和中止状态一起触发??

clone一下仓库:https://github.com/cocos-creator/cocos2d-x-lite的develop分支,
替换一下cocos/audio这个目录

替换了直接构建项目然后热更新就行了?不需要换包吗?

这个需要重新打包吧,目前版本ios刚审核通过,短期内不会换包,直接热更修复这个bug可行吗

看到了麻烦回复下

修改cpp代码需要重新编译,提交appstore的。

不编译的话有没有办法避免这个bug产生,比如stop音频的时候检测下状态,如果发现刚好结束了就不进行stop了,重新提交审核的话目前来看不大可能

这个bug触发后是必闪退的吗?在js层面多加些判断绕过这个bug应该怎么做?

能详细说明下触发这个bug的条件吗,目前升级版本或者换包都需要时间,最好js代码里做些判断,避免触发这个条件,这样可行吗?如果可以做到,应该怎么做?

另外这个音频结束和中止状态同时出发,这个中止状态指的是暂停音频还是停止音频?

额,这个issue是android平台独有的,ios上应该没有问题啊。

那就奇怪了,自从升级到1.5.1后,有不少玩家反馈莫名其妙闪退,一直定位不到

最好集成一些第三方的崩溃收集插件,比如腾讯bugly,这样c++崩溃也能够告知你堆栈信息。

请问cocos creator在使用Bugly cocos plugin的时候,有没有添加“支持JavaScript脚本错误捕获”这部分?

象这种第三方通用的崩溃错误统计系统,一般就统计java,cpp的崩溃。
它没法知道js层的东西,你可以自己搞个js错误日志收集系统,出现错误定时发送到自己后台分析。

js可以捕获错误日志?

应该是ScriptingCore::reportError。在这里hack

我现在用的creator1.5.1,直接替换这个分支下的audio目录不会有什么问题吧?

直接替换吧,没问题的。或者你用Creator1.6的audio目录替换也可以。

我替换过了,编译的时候报错了,提示F:\CocosCreator1.5.1\resources\cocos2d-x\cocos\platform\android目录下缺少一个。mk文件,用的是你发的这个分支