请问背景音乐在小游戏前后台切换时需要自己控制开始和停止吗?

我看有的代码里面,特意在window.wx.onHide里面stopMusic,然后在window.wx.onShow里面playMusic。意思显然是小游戏被切到后台后停止背景音乐,切到前台后再开音乐。
但我发现,我即使没有这些代码,在微信小游戏真机调试里照样是切后台后背景音乐自动停止,回前台后背景音乐重新播放啊。
所以我挺疑惑的,现在是否有必要针对小游戏的前后台切换,来自己控制背景音乐的停止和播放呢?是不是那些代码都是很老旧的,现在cocos creator版本已经不需要这些控制代码了?
我是小白,请各位老师指教,谢谢!

这个主要是浏览器在不同的设备下的兼容问题。微信能做到大多数设备后台切换后的音频正常,但是还有一些没有兼容到的设备,是需要开发者自己特殊处理的。

感谢回复!您的意思是现在很多设备,微信那边已经能做到切前后台时自己控制背景音乐停止和重新播放是吧?
如果是这样,我自己有点不想再人为加那些onHide,onShow里的停止和重播代码了?一是有点麻烦,二是加上后会不会反而和微信有些冲突呢(比如切到前台时微信已经控制重新播放背景音乐了,我自己onShow再播放,会不会有问题?)
还有个疑问,wx.onAudioInterruptionBegin,wx.onAudioInterruptionEnd(也就是背景音乐被打扰)时的这些特殊情况,开发者需要自己控制背景音乐播放和停止吗?还是说微信现在也能像上面说的切前后台一样,在很多设备上能控制这些东西,无需开发者自己写代码了?
谢谢!期待您的回复!

首先,onHide,onShow中控制音频播放不会和微信的冲突。
wx.onAudioInterruptionBegin,wx.onAudioInterruptionEnd这些特殊情况,有可能不触发onShow,onHide,最好也进行控制一下,主要是接电话等情况。

还有最后你说的想依赖微信进行音频控制,不建议,微信只是针对大众做的逻辑,它不能完全解决你遇到的音频问题,比如iOS设备,在游戏中通过上滑进入进程界面,微信是无法暂停音频播放的,但是会触发onHide,这时候就只能开发者自己做处理了。还有播放激励视频时,也存在无法暂停的情况。

其实这些都跟设备兼容性有关系。我们的游戏是运行在微信浏览器上的,但是不同的厂商,不同的型号,就可能会有浏览器上的差异。这个浏览器差异跟电脑上的浏览器差异是一样的,很难兼容完全~

所以要想更好的用户体验,就需要多写点兼容性代码~

非常感谢!那我就在onHide,onShow,onAudioInterruptionBegin,onAudioInterruptionEnd这些地方统统都加上背景音乐的停止或播放代码。
就是有个地方有点不太明白。。。。我一直以为既然运行在微信小游戏平台上,那用户无论用什么手机,就应该都是统一用的微信平台内嵌的浏览器。您的意思是比如华为和小米手机用户,虽然都玩微信小游戏,但他们可能用的是不同浏览器?

image
可以看到安卓都是使用的一种浏览器【X5浏览器】,而X5浏览器对于不同的设备存在兼容性问题~

非常感谢!明白了!
第一,原来虽然IOS和安卓用户都用微信小游戏平台,但他们用的浏览器不一样。
第二,虽然安卓用户在玩微信小游戏时用的都是X5浏览器,但仍然可能因为手机型号不一样而遇到不同的兼容性问题。
第三,综上所述,我不能被现在测试用的这款手机迷惑而导致大意,太有必要在onShow,onHide…等地方加上自己的代码来适配各种机型,以防万一了。
非常非常感谢!