老师你好:
var postId = this.data.currentPostId;
var postData = postsData.postDataList[postId];
var musicVO = postData.music;
var _this = this;
if (!_this.data.isPlayingMusic) {
wx.playBackgroundAudio({
dataUrl: musicVO.url,
title: musicVO.title,
coverImgUrl: musicVO.coverImg,
success: function (res) {
// success
_this.setData({
isPlayingMusic: true,
});
},
fail: function () {
// fail
},
complete: function () {
// complete
wx.onBackgroundAudioPause(function (event) {
_this.setData({
isPlayingMusic: false,
});
app.globalData.g_isPlayingMusic = false;
app.globalData.g_isPlayingMusicPostId = null;
});
wx.onBackgroundAudioPlay(function (event) {
_this.setData({
isPlayingMusic: true,
});
app.globalData.g_isPlayingMusic = true;
app.globalData.g_isPlayingMusicPostId = postId;
})
}
});
}在 var _this = this; 处 打印 _this.data 的值是当前页面正确显示的json数据。 但是点击播放按钮,到了onBackgroundAudioPlay 回调的时候,_this.data 的值就变成了 上一个打开的页面的json数据了。如果再次点击播放继续到onBackgroundAudioPlay 回调,此时_this.data的值又正确了。
另外,当第一次打开一个页面,点击播放按钮的时候,不会走到onBackgroundAudioPlay的回调。新打开页面播放,或者再次点击当前页播放按钮才会成功回调到onBackgroundAudioPlay 。 只发生在小程序音乐首次播放时。
2个问题,老师帮忙解答一下呀