W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
小游戲內(nèi)只有一種音頻播放的方式,即使用 InnerAudioContext 來播放。
通過 wx.createInnerAudioContext() 接口可以創(chuàng)建一個音頻實(shí)例 innerAudioContext ,通過這個實(shí)例可以播放音頻。
var audio = wx.createInnerAudioContext()
audio.src = url // src 可以設(shè)置 http(s) 的路徑,本地文件路徑或者代碼包文件路徑
audio.play()
在 iOS 系統(tǒng)上,默認(rèn)遵循靜音鍵設(shè)置。如果希望在靜音時也能播放聲音,可以設(shè)置 obeyMuteSwitch
為 false
。
audio.obeyMuteSwitch = false
設(shè)置 autoplay
和 loop
屬性可以自動播放和循環(huán)播放音頻,一般適用于背景音樂。
var bgm = wx.createInnerAudioContext()
bgm.autoplay = true
bgm.loop = true
bgm.src = url
當(dāng)小游戲被隱藏到后臺時,所有音頻會被暫停,并在回到前臺之前都不能再播放成功。
回到前臺之后,被暫停的音頻不會自動繼續(xù)播放,如果小游戲有背景音樂的話,需要監(jiān)聽回到前臺事件,并在收到回到前臺事件之后調(diào)用背景音樂繼續(xù)播放。
wx.onShow(function () {
bgm.play()
})
音頻中斷事件指的是在游戲期間,音頻被系統(tǒng)打斷時觸發(fā)的事件。音頻中斷事件分為中斷開始和中斷結(jié)束事件,分別使用 wx.onAudioInterruptionBegin() 和 wx.onAudioInterruptionEnd() 來監(jiān)聽。
以下事件會觸發(fā)音頻中斷開始事件:接到電話、鬧鐘響起、系統(tǒng)提醒、收到微信好友的語音/視頻通話請求。被中斷之后,小游戲內(nèi)所有音頻會被暫停,并在中斷結(jié)束之前都不能再播放成功。
中斷結(jié)束之后,被暫停的音頻不會自動繼續(xù)播放,如果小游戲有背景音樂的話,需要監(jiān)聽音頻中斷結(jié)束事件,并在收到中斷結(jié)束事件之后調(diào)用背景音樂繼續(xù)播放。
wx.onAudioInterruptionEnd(function () {
bgm.play()
})
如果小游戲的邏輯強(qiáng)依賴音樂的播放,則需要在音頻開始中斷的時候暫停游戲
wx.onAudioInterruptionBegin(function () {
// 暫停游戲
})
目前兩個平臺完全支持的音頻格式有 mp3、aac、wav。其他格式存在系統(tǒng)差異,不保證支持。
對于相同的音效,應(yīng)該復(fù)用已有的音頻實(shí)例,而不是重新創(chuàng)建一個音頻實(shí)例。
如果一個音頻不再需要使用了,可以調(diào)用 InnerAudioContext.destroy() 接口提前銷毀這個實(shí)例。
由于系統(tǒng)限制,在 Android 上最多同時播放 10 個音頻,超過的部分會做有損處理,對開發(fā)者來說不感知,但開發(fā)者應(yīng)盡量避免同時播放過多音頻。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: