当我在测试音乐播放状态时我的全局判断条件没有执行到,导致最后音乐正在播放时从另外一篇文章进入详情页音乐图标还是暂停状态,
这是为啥呢?我检查了调试很久还是没弄出来,代码和七月老师的是一模一样的,谁能看看到底出了什么问题?我的判断条件如下:
if (app.globalData.g_isPlayingMusic && app.globalData.g_currentMusicPostId == postId) {
// this.data.isPlayingMusic = true
this.setData({
isPlayingMusic: true
})
}
完整代码:
onMusicTap: function (event) {
var currentPostId = this.data.currentPostId;
var postData = postsData.postList[currentPostId];
var isPlayingMusic = this.data.isPlayingMusic;
if (isPlayingMusic) {
wx.pauseBackgroundAudio();
// this.data.isPlayingMusic = false;//flase代表暂停
this.setData({
isPlayingMusic: false
})
}
else {
wx.playBackgroundAudio({
dataUrl: postData.music.url,
title: postData.music.title,
coverImgUrl: postData.music.coverUrl,
})
// this.data.isPlayingMusic = true;//true 代表播放
this.setData({
isPlayingMusic: true
})
}
if (app.globalData.g_isPlayingMusic && app.globalData.g_currentMusicPostId == postId) {
// this.data.isPlayingMusic = true
this.setData({
isPlayingMusic: true
})
}
//监听音乐
this.setMusicMonitor();
},
//监听音乐的状态是否与默认的状态一致
setMusicMonitor: function () {
var self = this;
wx.onBackgroundAudioPlay(function () {
self.setData({
isPlayingMusic: true
})
app.globalData.g_isPlayingMusic = true;
app.globalData.g_currentMusicPostId = self.data.currentPostId;
})
wx.onBackgroundAudioPause(function () {
self.setData({
isPlayingMusic: false
})
app.globalData.g_isPlayingMusic = false,
app.globalData.g_currentMusicPostId = null
})
}
})
相关分类