stopAllEffects在原声平台上会重置背景音乐的播放

  • Creator 版本: 2.4.2

  • 目标平台:iOS/Android

  • 重现方式:
    1、首先播放一段背景音乐,用playMusic函数
    2、播放音效前,调用stopAllEffects,你会发现在原声平台iOS/Android上背景音乐会重置播放,在h5上是好的

你好,我在 android 上测试,并没有复现你的问题。测试机型:vivo x7plus

请问您是否在播放背景音乐cc.audioEngine.playMusic(this.BgAudio, true );后
调用cc.audioEngine.stopAllEffects()中断音效,但是却造成this.BgAudio从头开始播放的问题
如果可以的话,能否测试下iOS平台下是否有这个问题,我们iOS必现

嗯,问题已经复现了。目前查到原因是 ios 上,调

var id = cc.audioEngine.play(this.bgmAudio, false, 1);
cc.audioEngine.setCurrentTime(id, 2);

音频没有立刻播放 2 秒后的内容,而是从头开始播放这个原因导致的。明天继续看下是否是ios 底层限制。

谢谢,如果有临时解决方案也请贴一下代码
因为目前我们只能放弃使用stopAllEffect而将需要停止的音效通过id来指定暂停了,但毕竟stopAllEffect还是更方便一些

关于audioEngine还有一个问题···只要循环播放背景音乐,然后Android原生上,直接锁屏,然后过一段时间,解锁手机,然后调用cc.game.restart会发现背景音乐不会停止还是会继续播放,然后我在重启回调方法里停止背景音乐:
``
cc.game.on(cc.game.EVENT_RESTART, function () {
cc.audioEngine.stop(musicID);
cc.audioEngine.stopAll();
}
这样也不能停止,重启后调用播放背景音乐会出现重复播放背景音乐···



可以先这样改。

你好,我这边背景音乐是用audioEngine.playeMusic播放的,调用stopAllEffects的时候也会暂停背景音乐.
然后参照这个方法修改以后,在安卓上测试还是会停止播放背景音乐,请问这要怎么修改

我刚刚是在 ios 测试可以,android 一会我试试。

你好,我在 android 上测试并不会有这个问题。你最好给一个你的 demo。

找到问题了,是调用了stopAll的方法,改成stopAllEffect是可以的

麻烦问下这个问题会有正式的修复方案吗?

2.4.3一样的问题 stopAllEffects 这个会重新播放music

1赞

请问,解决了么。我现在也一样碰到这种情况了,目前发现的是安卓项目

2.2.2 打包到安卓 出现同样问题 会重播背景音乐

如果有这个问题,请参考我上面给的方案先修改引擎。

照着上面引擎组大佬给的方案,就可以解决问题了

啥时候引擎会修复这个,而不是单独去修改哦 已经按照改了。确实可以

https://github.com/cocos-creator-packages/jsb-adapter/pull/356

借贴,在2.44版本下stopAllEffects, win32平台 会重置背景音乐的的音量大小设置。