小程序播放緩存的音頻文件的實(shí)現(xiàn)方式
很多時(shí)候我們都想把數(shù)據(jù)預(yù)先緩存到本地,節(jié)省帶寬。但是最近在處理微信小程序播放緩存到本地的音頻文件的時(shí)候,遇到一些小問(wèn)題,然后對(duì)于安卓和IOS需要采用不同的播放策略。
首先,如果哪怕用audio標(biāo)簽來(lái)播放在線的音頻文件,假如服務(wù)端沒(méi)有實(shí)現(xiàn)斷點(diǎn)續(xù)傳,IOS是無(wú)法播放的,這個(gè)需要注意。
對(duì)于緩存在小程序的音頻(wx.saveFile(OBJECT)保存的音頻),IOS只能通過(guò)播放背景音樂(lè)的接口播放,其它播放方法都沒(méi)有成功實(shí)踐,而對(duì)于安卓,內(nèi)部 audio 上下文 innerAudioContext 對(duì)象即可播放。給出代碼:
var res = wx.getSystemInfoSync()
if (res.platform == 'ios') {
this.audio = wx.getBackgroundAudioManager()
} else {
this.audio = wx.createInnerAudioContext();
}
this.audio.title = "音樂(lè)文件";
this.audio.src = "本地文件地址";
this.audio.play();