老师,为什么这里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
相似问题