靜音下播放如何實(shí)現(xiàn)
在系統(tǒng)播放面板顯示和控制
通過設(shè)置標(biāo)題、專輯名、歌手名、封面圖等屬性,小程序音頻接口支持在系統(tǒng)音樂播放面板顯示出來。通過響應(yīng)系統(tǒng)面板的點(diǎn)擊事件( onPrev , onNext ),可以實(shí)現(xiàn)列表播放。
他小程序、微信內(nèi)其他音樂、其他 App 的音樂),則小程序不再持有背景音頻播放器。
2播放內(nèi)部音頻
內(nèi)部音頻適用于所有小程序,尤其是游戲類目的小程序,如“跳一跳”。
通過 wx.createInnerAudioContext() 接口可以創(chuàng)建一個(gè)音頻實(shí)例
每個(gè)小程序可以同時(shí)持有和播放多個(gè)內(nèi)部音頻,但一旦小程序進(jìn)入后臺(tái)(onHide),所有內(nèi)部音頻都會(huì)被暫停,且在用戶回到前臺(tái)(即打開小程序)之前無法再被播放。
靜音下也能播放
在 iOS 系統(tǒng)中,內(nèi)部音頻默認(rèn)遵循靜音鍵設(shè)置。如果希望在靜音時(shí)也能播放,可以設(shè)置 obeyMuteSwitch 為 false 。
安卓系統(tǒng)沒有統(tǒng)一的靜音開關(guān),暫不支持此特性。
3處理音頻中斷事件
以游戲?yàn)槔?,在游戲中,?jīng)常有播放使用內(nèi)部音頻來播放游戲背景音樂的場(chǎng)景。音頻中斷事件指的是在游戲期間,音頻被系統(tǒng)打斷時(shí)觸發(fā)的事件。音頻中斷事件分為中斷開始和中斷結(jié)束事件,分別使用 wx.onAudioInterruptionBegin() 和 wx.onAudioInterruptionEnd() 來監(jiān)聽。
以下事件會(huì)觸發(fā)音頻中斷開始事件:接到電話、鬧鐘響起、系統(tǒng)提醒、收到微信好友的語音/視頻通話請(qǐng)求。被中斷之后,小游戲內(nèi)所有音頻會(huì)被暫停,并在中斷結(jié)束之前都不能再播放成功。
中斷結(jié)束之后,被暫停的音頻不會(huì)自動(dòng)繼續(xù)播放,游戲可監(jiān)聽音頻中斷結(jié)束事件,并在收到中斷結(jié)束事件之后調(diào)用背景音樂繼續(xù)播放。
如果游戲的邏輯強(qiáng)依賴音樂的播放(如音樂類游戲),需要在音頻開始中斷的時(shí)候暫停游戲。