很多时候我们都想把数据预先缓存到本地,节省带宽。但是最近在处理微信小程序播放缓存到本地的音频文件的时候,遇到一些小问题,然后对于安卓和IOS需要采用不同的播放策略。
首先,如果哪怕用audio标签来播放在线的音频文件,假如服务端没有实现断点续传,IOS是无法播放的,这个需要注意。
对于缓存在小程序的音频(wx.saveFile(OBJECT)保存的音频),IOS只能通过播放背景音乐的接口播放,其它播放方法都没有成功实践,而对于安卓,内部 audio 上下文 innerAudioContext 对象即可播放。给出代码:
var res = wx.getSystemInfoSync() if (res.platform == 'ios') { this.audio = wx.getBackgroundAudioManager() } else { this.audio = wx.createInnerAudioContext(); } this.audio.title = "音乐文件"; this.audio.src = "本地文件地址"; this.audio.play();