问题
最近在做项目的时候,出现了一个问题,innerAudioContext这个东西,第一次加载播放的时候,是没有什么问题的,问题就出在退出该页面,再次点击播放另一个音频,进入播放页面只有,就没声音了,也没报错,信息也能打印出来,就是不播放。
audioLoad: function(audio) {
innerAudioContext.autoplay = true
if (audio == '') {
innerAudioContext.src = "https://naturling-media.oss-cn-hangzhou.aliyuncs.com/interactivebook/resource/kong.m4a"
} else {
innerAudioContext.src = audio
}
console.log("音频:",audio)
innerAudioContext.play()
},
页面隐藏和销毁的时候,对实例进行销毁
onHide: function() {
innerAudioContext.destroy()
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
innerAudioContext.destroy()
}
初次判定
innerAudioContext.destroy()这个东西,我把这个东西改成innerAudioContext.stop()就ok了,在页面卸载的时候
解决
好吧,这个坑货,Page({})这个实例外面的东西,只是在页面初始化的时候执行一次,下一次类似自动缓存的样子,如果你在页面卸载的时候并把音频播放实例给销毁掉,那就是造成下次进来的时候并不会再次初始化实例,至少我测试的时候是这种结果,仅供参考-。-
const app = getApp() //获取应用实例
const common = require('../../utils/util.js')
const innerAudioContext = wx.createInnerAudioContext()
console.log(666)
Page({
...
或者在onLoad时候再次初始化
onLoad:function(){
this.innerAudioContext = wx.createInnerAudioContext()
}