微信小游戏 ios 声音播放重复问题

还有一个问题就是音乐resume的问题,切换后台如果调用cc.audioEngine.pause之后,再切换前台调用cc.audioEngine.resume,很大的几率就没有音乐了,看日志切换后台的时候CCAudio里面pause调用了两次,一次是我们自己调用cc.audioEngine.pause,另一次引擎处理的?回到前台的时候引擎也自动调用了resume?切换后台不用pause切换前台不用resume的时候,CCAudio里面pause和resume也会各打印一次,切换前后台的时候引擎自己处理了这个吗?但是resume的时候很大的概率没有音效了,看日志resume是成功了的,状态变成了播放状态

你反馈的是哪个平台的问题?

https://forum.cocos.com/t/topic/77142
大佬看一下这段代码有没有问题

微信小游戏的

我刚刚测试了加载远程音频切换前后台暂停或者恢复播放都没问题,你能否提供一下出问题的手机型号和demo。

应该是都会出现的,我们自己测试出现的机型有OPPO R15、VIVO Z3和华为荣耀8,切换前后台暂停或者恢复播放就是直接调用的cc.audioEngine.pause和cc.audioEngine.resume接口,都传入了id,连续切换后台切回前台再切换后台切回前台第二次之后很容易出现,demo等我整理一下给你

AudioDemo.zip (1.3 MB)
你好,这个是demo,打包成微信小游戏后用手机预览点一下playmusicnormal播放背景音乐之后切换后台再切换前台音效就没有了,这个是测试暂停和恢复的demo,出现几率很大,
还有个音效重叠的问题不容易复现,可以切换点击playmusic3个按钮,代码里面进入后台的时候需要修改成stop,进入前台的时候play, 切换playmusic和切换前后台的时候出现能出现音效重叠的问题,但是不容易复现

在ios12.1 iphone6sP上无法复现你说的这两种情况。

刚才我在ios12.0.1 iphone7上复现了,iPhone复现概率比Android小,试了二十次能出现两次,我们这边Android测试机复现概率很大,你们那边有Android机的话可以用Android测试下,直接切换后台再切换回来,别用按钮暂停和恢复,按钮暂停和恢复没有试出来,微信开发工具上切换后台也没有出现这种情况,就是真机的时候会出现,我都是按home键切换后台测试的

切换后台暂停恢复的那个很容易复现,音效重叠的之前也是Android测试复现的,音效重叠的概率小一些,不容易复现

你好,切前后台暂停与恢复播放的问题我测试目前是微信环境问题,目前已经和微信人员取得联系,等待他们排查问题。
重复背景音的问题我这边没能复现,有空我再试试。或者你也用微信API测试看看,如果是他们api的问题,请和我说一声。
谢谢你。

好的,多谢,我们这边先用微信API试试,有问题再沟通。

个人的一些 测试总结:
1.因为重用audio对象的时候,设置audio.src的时候,可能是需要等音频解码完成才能播放,但是此时调用audio.play播放的是之前的音频数据,导致播放重复。
2.经测试,微信小游戏设置audio.src=""可能会失败,导致部分逻辑判断错误。
3.先audio.play(),然后设置audio.src,可能导致之前的音频 无限重复播放。经测试,这是微信小游戏环境的bug,跟引擎无关。

我也遇到, 折算比较严重的bug,

请问一下 现在对于ios 上 出现的概率性播放前一次音效的问题,该如何解决呢

切换前后台吗,音乐还是音效,切换后台的时候会把所有的都关掉,目前还没遇到播放前一次音效

音效,比较尴尬

play 和 resume 在 ios13 小程序 web-view 跳转 原生时必现, 两次稳定出现一次…
第二次resume时isMusicPlay 为true ,但是实际感觉并没有播放, 再重新跳转原生一次 就能延续的播放了.
这种情况下切场景音频会叠加, stopMusic/stopAll都无效…

不知道您有没有什么解决方法, 有点蒙…

你可以试试用微信的API,resume之前微信环境是有问题的,不知道微信官方改了没有,我没用resume了,切换后台的时候我是直接stop切换前台play;如果你用的是引擎的API,引擎自己也有处理,你可以看下CCAudio和CCAudioEngin,在里面加点日志看下播放状态和id,切换后台时引擎暂停游戏时会调用到CCAudioEngine里面的_break方法你可以看下缓存的数组数据对不对的上,切换前台时引擎恢复游戏时会播放这个缓存数组里面的音频,看你自己调用的resume的时机,有可能你调用的时候引擎已经将这个音频恢复播放了,你再去调用resume检测状态不是暂停状态就不会处理了,建议使用微信API

遇到类似的问题 H5游戏 部分oppop vivo 机型,切后台声音不会停止 ,我添加游戏监听,这些型号的手机用的 cocos2d的浏览器不行的,但是用第三方的是可以的,但其他手机是好的,这个怎么处理请问,是cocos2d的webview 问题还是creator 那边的问题呢