麒麟子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的音樂管理器並不知情。

發佈了233 篇原創文章 · 獲贊 546 · 訪問量 119萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章