老师 我有个问题,为什么音乐播放器主控开关状态改变的时候 onload函数还会重新加载

来源:19-15 监听播放事件完善音乐播放

qq_四月是你的谎言喽_03448132

2017-11-11

写回答

3回答

慕虎5376285

2018-02-03

监听全局的 不论它放到哪里 只要被触发一次  就会一直监听

0
0

小小祭司

2017-12-24

你好:

第一步:我们先验证下onLoad会不会重新加载,直接在onLoad中打印一行测试代码:

console.log("测试");

然后反复点击播放/关闭,查看Console,发现除了加载的时候打印了一行,说明onLoad并没有执行多次。

//img.mukewang.com/szimg/5a3f7254000182ba04910101.jpg

第二步:我们在wx.onBackgroundAudioPlay和wx.onBackgroundAudioPause打个断点,看是什么情况,发现也是只在加载的时候停顿了下,说明也是只加载一次。再让我们看下,还有什么是和主控开关有关联的?判断是否播放的isPlayingMusic?

我们在wx.onBackgroundAudioPlay和wx.onBackgroundAudioPause内的setData上打个断点试试,很有意思的发现每次音乐播放器主控开关状态改变,断点都会随着执行。我们可以在这里加个测试代码

//img.mukewang.com/szimg/5a3f72b40001e2b802770133.jpg

//img.mukewang.com/szimg/5a3f72e6000174f904940094.jpg

这就很有趣了,我们看一下完整的方法代码:

wx.onBackgroundAudioPlay(callback)

问题就很显然了,中间的是callback:我们在此写了函数用于修改播放状态,此函数作为回调函数。也就是说每当微信提供的音乐播放器主控状态被监听到了,就会执行改变播放状态的回调函数。

综上所述:不是onLoad多次加载,而是回调函数被执行而已。

(看到问题就顺手解决一下,目的是为了更深入的了解知识点。比较唐突,见谅。)


0
0

7七月

2017-11-13

可以把代码贴出来看看吗

0
1
bby365
老师,监听播放事件放在onload事件中,为什么点击主控开关时,会触发onload事件了?
2017-11-19
共1条回复

微信小程序入门与实战(全新版) 超20000人学习的好课

4年同步微信官方迭代,累计20000+人学习, 比微信官方更火爆!

23866 学习 · 6899 问题

查看课程