麒麟子Cocos Creator实用技巧三:微信小游戏中音效中断问题处理

音效可谓是一个小游戏的灵魂了。

某些玩法离开了音效更是不可能,比如别踩白块,或者一些以速度为主的游戏类型。

麒麟子公司最近有一款斗地主上微信小游戏,另外还做了两款休闲类小游戏。

当我们觉得差不多大功告成的时候,有用户反馈说,背景音乐突然就没了。 要返回大厅再进游戏场景才有。

我当时第一反应就是,正在播放的音乐被干掉了,重新播放又是OK的。

基于这个假设,那就表示这不是Cocos Creator的锅

经过多方测试,找到了触发微信小游戏声音消失的重现办法

  1. 打接电话
  2. 触摸iPhoneX底部的那个白色操作条 

接下来就是一顿,百度,论坛,微信文档操作。最后锁定了一个微信API

wx.onAudioInterruptionEnd

监听音频中断结束事件。在收到 onAudioInterruptionBegin 事件之后,小程序内所有音频会暂停,收到此事件之后才可再次播放成功

微信小游戏官方文档地址:https://developers.weixin.qq.com/minigame/dev/api/wx.onAudioInterruptionEnd.html

 

与它配套的还有一个wx.onAudioInterruptionBegin事件,但是我们是要恢复播放,只需要处理这个end事件就好了。

 

解决办法:

加上这个解决办法,是方便急着解决BUG的同学们,忽略之前的分析过程,直接锁定最终结果 拿走,不谢

wx.onAudioInterruptionEnd(function(){
    //强行暂停音乐 如果不暂停,调用resumeMusic是无效的,因为是微信让声音消失了
    cc.audioEngine.pauseMusic();
    //恢复音乐播放,比如调用 cc.audioEngine.resumeMusic();
    //self.refreshBG();
    //console.log('refreshBG');
});

注意:必须要先强行调用 cc.audioEngine.pauseMusic,再调用cc.audioEngine.resumeMusic, 因为这个声音是微信小游戏关掉的,Cocos Creator的音乐管理器并不知情。

你可能感兴趣的:(Cocos,Creator实用技巧,麒麟子Cocos,Creator实用技巧)