小程序支持播放和錄制音頻。小程序播放音頻的方式有兩種:內部音頻和背景音頻。
1.內部音頻支持用戶在使用小程序過程中播放音效;
2.背景音頻支持在用戶離開小程序后繼續播放音效。
BackgroundAudioManager wx.getBackgroundAudioManager()
獲取全局唯一的背景音頻管理器。 小程序切入后台,如果音頻處於播放狀態,可以繼續播放。但是后台狀態不能通過調用API操縱音頻的播放狀態。
從微信客戶端6.7.2版本開始,若需要在小程序切后台后繼續播放音頻,需要在 app.json 中配置 requiredBackgroundModes
屬性。開發版和體驗版上可以直接生效,正式版還需通過審核。
(二)內部音頻
InnerAudioContext wx.createInnerAudioContext()
基礎庫 1.6.0 開始支持,低版本需做兼容處理。
創建內部 audio
上下文 InnerAudioContext
對象。
處理音頻中斷事件
以游戲為例,在游戲中,經常有播放使用內部音頻來播放游戲背景音樂的場景。音頻中斷事件指的是在游戲期間,音頻被系統打斷時觸發的事件。音頻中斷事件分為中斷開始和中斷結束事件,分別使用 wx.onAudioInterruptionBegin() 和 wx.onAudioInterruptionEnd() 來監聽。
以下事件會觸發音頻中斷開始事件:接到電話、鬧鍾響起、系統提醒、收到微信好友的語音/視頻通話請求。被中斷之后,小游戲內所有音頻會被暫停,並在中斷結束之前都不能再播放成功。
中斷結束之后,被暫停的音頻不會自動繼續播放,游戲可監聽音頻中斷結束事件,並在收到中斷結束事件之后調用背景音樂繼續播放。
如果游戲的邏輯強依賴音樂的播放(如音樂類游戲),需要在音頻開始中斷的時候暫停游戲