4831关注14454浏览
问题是这样的。由于产品整个只允许一个音频播放,跳转至其他页面时,也可以判断播放状态。
所以我在app.js中定义了一个全局对象。
const innerAudioContext = wx.createInnerAudioContext()//音频播放;
在A页面onLoad中 注册了一遍 预防更换音频src多次触发回调。 这是正常的。
//播放回调
innerAudioContext.onPlay(() => {
console.log('开始播放')
})
但是我跳转入B页面中,由于要识别回调状态来改变Page数据。所以在B页面onLoad中也写入了
innerAudioContext.onPlay(() => {
console.log('开始播放')
})
结果在我返回A页面播放音乐时,
B页面明明是卸载的。但是却也触发了回调。
如何让B页面回调事件卸载后不执行?不能销毁实例,因为是全局对象。。
-
至过去的我
2044人对此回答表示赞同
我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多> -
Camila
7人对此回答表示赞同
我也发现了,页面销毁了回调依然存在,还能获取到页面的this.data,不过是卸载时的data。这样还导致了一个不太容易发现的bug。
展开70回复分享发布于 6年前评论(0)
收起评论
-
Reid
6人对此回答表示赞同
https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=423658645&docid=000a28612f0b38ab7466df6565b000
展开60回复分享发布于 6年前评论(0)
收起评论