老师 我有个问题,为什么音乐播放器主控开关状态改变的时候 onload函数还会重新加载
来源:19-15 监听播放事件完善音乐播放
qq_四月是你的谎言喽_03448132
2017-11-11
写回答
3回答
-
慕虎5376285
2018-02-03
监听全局的 不论它放到哪里 只要被触发一次 就会一直监听
00 -
小小祭司
2017-12-24
你好:
第一步:我们先验证下onLoad会不会重新加载,直接在onLoad中打印一行测试代码:
console.log("测试");
然后反复点击播放/关闭,查看Console,发现除了加载的时候打印了一行,说明onLoad并没有执行多次。
第二步:我们在wx.onBackgroundAudioPlay和wx.onBackgroundAudioPause打个断点,看是什么情况,发现也是只在加载的时候停顿了下,说明也是只加载一次。再让我们看下,还有什么是和主控开关有关联的?判断是否播放的isPlayingMusic?
我们在wx.onBackgroundAudioPlay和wx.onBackgroundAudioPause内的setData上打个断点试试,很有意思的发现每次音乐播放器主控开关状态改变,断点都会随着执行。我们可以在这里加个测试代码
这就很有趣了,我们看一下完整的方法代码:
wx.onBackgroundAudioPlay(callback)
问题就很显然了,中间的是callback:我们在此写了函数用于修改播放状态,此函数作为回调函数。也就是说每当微信提供的音乐播放器主控状态被监听到了,就会执行改变播放状态的回调函数。
综上所述:不是onLoad多次加载,而是回调函数被执行而已。
(看到问题就顺手解决一下,目的是为了更深入的了解知识点。比较唐突,见谅。)
00 -
7七月
2017-11-13
可以把代码贴出来看看吗
012017-11-19
相似问题