Page({
/**
* 页面的初始数据
*/
data: {
music: null,
isPlaying: false,
switch1Checked: false
},
onLoad() {
const switch1Checked = wx.getStorageSync('switch1Checked') || false; // 从本地存储中读取开关状态
this.setData({switch1Checked: switch1Checked}); // 设置开关状态
},
playMusic: function() {
if (!this.data.music) {
this.setData({music: wx.createInnerAudioContext()});
}
const music = this.data.music;
music.src = 'http://music.163.com/song/media/outer/url?id=3950105.mp3';
music.autoplay = true;
music.loop = true;
music.play();
this.setData({isPlaying: true});
wx.setStorageSync('switch1Checked', true); // 保存开关状态到本地存储
},
pauseMusic: function () {
if (this.data.music) {
this.data.music.pause();
this.setData({isPlaying:false});
wx.setStorageSync('switch1Checked', false); // 保存开关状态到本地存储
} else {
console.error("无法暂停音乐,因为未创建音频对象");
}
},
switch1Change: function (e) {
if (e.detail.value) {
this.playMusic();
this.setData({switch1Checked: true});
} else {
this.pauseMusic();
this.setData({switch1Checked:false});
}
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
if (this.data.isPlaying) {
this.playMusic();
} else {
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
if (this.data.isPlaying) { // 如果正在播放音乐,则暂停音乐并保存状态到本地存储
this.pauseMusic();
wx.setStorageSync('switch1Checked', false); // 保存开关状态到本地存储
} else { // 如果未播放音乐,则不进行任何操作
// do nothing
}
},
})
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。