解决方案:
1.首先定义一个全局变量
let innerAudioContext = null;
2.在onLoad方法中获取innerAudioContext对象实例,再次进入页面时在onload再次创建实例,可以防止wx.createInnerAudioContext()监听回调多次触发
onLoad:function(options){
innerAudioContext = wx.createInnerAudioContext();
//以下监听事件只需要注册一次就行
innerAudioContext.onPlay(()=>{//监听播放事件
})
innerAudioContext.onStop(()=>{//监听停止事件
})
innerAudioContext.onPause(()=>{//监听暂停事件
})
}
3.在要使用的地方调用
/**
* 假设点击某个播放按钮,触发点击事件play,并传入音频src
*/
play:function(src){
innerAudioContext.src = src;//获取音频地址
innerAudioContext.play();//播放
}
4.假设希望退出这个页面时停止播放,在onUnload中加入如下一行代码,页面卸载时销毁此实例
onUnload:function(e){
innerAudioContext.destroy();//销毁这个实例
}
希望以上能够帮助大家!