使用cc.audioEngine.stop ( ) 会立刻触发setFinishCallback()回调。这样会搞得我音频播放混乱。native端出现这种情况概率很低,不足十分之一。但是浏览器调试出现概率是百分之百。看过一个去年发的2dx帖子,说的也是这种情况,当时团队的建议是改AudioEngine-inl.cpp的源码,但是团队发的问题解决步骤都是英文网页的,排版也乱,看不懂,而且creator和2dx的AudioEngine-inl.cpp文件中的代码好像有点不一样,不知道到怎么改。团队大大们来解答下,最好有清晰的截图
顶!大哥们给点建议啊。
自己挖自己的坟,人工顶起
每日人工顶起
我要顶多少次才会有大大来解答哦
希望 cc.audioEngine.stop()会触发setFinishCallback()回调, 感觉这才合理。
但不管怎么样, 总得web跟native表现一样才行。
兄弟,这可不合理啊,我是要在声音播放完之后才执行某些代码,不播放完不执行。如果你是要 在cc.audioEngine.stop()后立刻触发setFinishCallback()回调,那你直接把你要执行的代码语句写在cc.audioEngine.stop()语句后面不就立刻触发了吗?何必写在setFinishCallback()回调里面呢?setFinishCallback()本来设计来判断音效播放完成才执行回调的。
等cocos解决吧, 看他怎么取舍了。
总得web跟native表现一样才行。
我记得, 你git上修复过这个问题, 当初你是 手动stop, 也触发回调的。
看错了, 是本来会触发, 你修复成不会触发
这个Pull Request是之前重构android audio的时候,带入的新bug,然后修复的。
AudioEngine设计以来,一直都是stop不触发finish callback,那个PR我只是当个issue去修复了。
当时其他平台,比如ios,android,mac,应该stop都不触发finish的。
web平台需要保存一致性,这个我跟同事说下。
谢谢,再问一下,你们每次修改提交后,是要等下个版本才统一发布吗?我可以提前下载git源码覆盖到creator目录下吗?请给个操作步骤。
在最新的 1.6 测试版里面已经合并了。
你也可以手动下载 engine 的仓库,在 creator 的配置里面可以手动设置 engine 目录的。