老师,为什么这里onLoad函数里监听不起作用,一定要用全局变量呢?
来源:19-18 音乐播放最终章
 
			慕粉3673019
2017-01-08
老师,为什么这里onLoad函数里监听不起作用,一定要用全局变量呢?
onLoad:function(){
        var that = this;
wx.onBackgroundAudioPlay(function(){
that.setData({ isPlayingMusic:true }) // 为什么用这句不起作用,一定要去全局设变量?
//  不是点了返回按钮,再重新进入就会又初始化一遍吗?
})
}
4回答
- 
				
				我不太明白不起作用是什么意思,即使你不使用全局变量,一样会起作用,你wxml里是不是绑定的isplay这个变量 022017-01-08
- 
				  7七月 2017-01-08 这个音乐播放有一个小bug,建议你看下我 知乎,有多这个bug给出解决方案。说实话。。。这个音乐播放算是,整个项目里最难的了,看起来好像很简单,其实不是。 012017-01-08
- 
				  慕粉3673019 提问者 2017-01-08 谢谢老师回答! 我问这个是为了解决再次进入页面时,明明音乐还在播放,图片却变回初始状态的问题。 我一开始理解为 再次onLoad 时 wx.onBackgroundAudioPlay函数已经监听到了音乐正在播放,就应该把 isPlayingMusic 设为true了,也就不需要其他设置了。 现在想明白了,wx.onBackgroundAudioPlay 仅能监听“播放音乐” 这个“动作”,不能监听音乐播放的“状态”,所以onload的时候, wx.onBackgroundAudioPlay(function(){ that.setData({ isPlayingMusic:true }) } 这段代码不会执行。 换成 wx.getBackgroundAudioPlayerState({ success : function (res) { if (res.status==1) { that.setData ({ isplaying:true }) } } }) 这段代码就行了! 00
- 
				  慕粉3673019 提问者 2017-01-08 不明白 00
相似问题
