// pages/player/player.js
let musiclist=[];
let nowPlayingIndex=-1;
//获取全局唯一的音频管理器
const backgroundAudioManager=wx.getBackgroundAudioManager()
const app=getApp()
Page({
/**
* 页面的初始数据
*/
data: {
picUrl:'',
isPlaying:false ,//false 不播放
isShow:false ,//flase为隐藏歌词
lyric:'',
isSame:false,// 是否为同一首歌
isPause:false, //歌曲是否暂停
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log(options.musicID);
nowPlayingIndex=options.index
musiclist=wx.getStorageSync('musiclist')
console.log(app.getIsPause());
// if(!app.getIsPause()){
this._loadMusicDetail(options.musicID)
console.log(app.getIsPause());
// if(!app.getIsPause()){
// backgroundAudioManager.pause()
// }
// console.log(app.getIsPause);
// }
// this._loadMusicDetail(options.musicID)
},
//自定义函数
//将进度条传过来的当前时间(秒数)传递给歌词组件
timeUpdate(event){
// console.log('event',event);
this.selectComponent('.lyric').update(event.detail.currentTime)
}
,
//加载音乐详情
_loadMusicDetail(musicId){
//是否同一首歌曲
if(musicId == app.getPlayingMusicId()){
this.setData({
isSame:true
})
}else{
this.setData({
isSame:false
})
}
if(!this.data.isSame){
//不是同一首歌曲是重头播放
backgroundAudioManager.stop()
}
let music=musiclist[nowPlayingIndex]
console.log(music);
wx.setNavigationBarTitle({
title:music.name,
})
this.setData({
picUrl:music.al.picUrl,
isPlaying:false
})
app.setPlayMusicId(musicId)
wx.cloud.callFunction({
name:'music',
data:{
musicId,
$url:"musicUrl"
}
}).then(res=>{
console.log(res);
wx.showLoading({
title: '歌曲加载中',
})
let result=res.result
if(result.data[0].url==null){
wx.showToast({
title: '你不是vip,无权播放',
})
return ;
}
if(!this.data.isSame){
backgroundAudioManager.src=result.data[0].url;
backgroundAudioManager.title=music.name
backgroundAudioManager.coverImgUrl=this.data.picUrl
backgroundAudioManager.singer=music.ar[0].name
backgroundAudioManager.epname=music.al.name
}else{
console.log(app.getIsPause());
if(!app.getIsPause()){
backgroundAudioManager.pause()
}
}
this.setData({
isPlaying:true
})
wx.hideLoading();
wx.cloud.callFunction({
name:'music',
data:{
musicId,
$url:'lyric'
}
}).then(res=>{
console.log(res);
let lyric='暂无歌词'
const lrc=res.result.lrc
if(lrc){
lyric=lrc.lyric
}
this.setData({
lyric
})
})
})
},
togglePlaying(){
if(this.data.isPlaying){
this.setData({
isPause:true
});
backgroundAudioManager.pause();
}else{
this.setData({
isPause:false
});
backgroundAudioManager.play();
}
this.setData({
isPlaying:!this.data.isPlaying,
// isPause:!this.data.isPause
});
app.setIsPause(this.data.isPause)
console.log(app.getIsPause());
},
//上一首
onTrev(){
nowPlayingIndex--
if(nowPlayingIndex<0){
nowPlayingIndex=musiclist.length-1
}
this._loadMusicDetail(musiclist[nowPlayingIndex].id)
},
//下一首
onNext(){
console.log('下一首');
nowPlayingIndex++
if(nowPlayingIndex==musiclist.length){
nowPlayingIndex=0
}
this._loadMusicDetail(musiclist[nowPlayingIndex].id)
},
//是否显示歌词
isShow(){
this.setData({
isShow:!this.data.isShow
})
console.log(this.data.isShow);
},
onPlay(){
this.setData({
isPlaying:true
})
},
onPause(){
this.setData({
isPlaying:false
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.togglePlaying()
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
},
//自定义方法
//暂停播放
})
以上是pages/player
// pages/player/player.js
let musiclist=[];
let nowPlayingIndex=-1;
//获取全局唯一的音频管理器
const backgroundAudioManager=wx.getBackgroundAudioManager()
const app=getApp()
Page({
/**
* 页面的初始数据
*/
data: {
picUrl:'',
isPlaying:false ,//false 不播放
isShow:false ,//flase为隐藏歌词
lyric:'',
isSame:false,// 是否为同一首歌
isPause:false, //歌曲是否暂停
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log(options.musicID);
nowPlayingIndex=options.index
musiclist=wx.getStorageSync('musiclist')
console.log(app.getIsPause());
// if(!app.getIsPause()){
this._loadMusicDetail(options.musicID)
console.log(app.getIsPause());
if(app.getIsPause()){
backgroundAudioManager.pause()
}
// console.log(app.getIsPause);
// }
// this._loadMusicDetail(options.musicID)
},
//自定义函数
//将进度条传过来的当前时间(秒数)传递给歌词组件
timeUpdate(event){
// console.log('event',event);
this.selectComponent('.lyric').update(event.detail.currentTime)
}
,
//加载音乐详情
_loadMusicDetail(musicId){
//是否同一首歌曲
if(musicId == app.getPlayingMusicId()){
this.setData({
isSame:true
})
}else{
this.setData({
isSame:false
})
}
if(!this.data.isSame){
//不是同一首歌曲是重头播放
backgroundAudioManager.stop()
}
let music=musiclist[nowPlayingIndex]
console.log(music);
wx.setNavigationBarTitle({
title:music.name,
})
this.setData({
picUrl:music.al.picUrl,
isPlaying:false
})
app.setPlayMusicId(musicId)
wx.cloud.callFunction({
name:'music',
data:{
musicId,
$url:"musicUrl"
}
}).then(res=>{
console.log(res);
wx.showLoading({
title: '歌曲加载中',
})
let result=res.result
if(result.data[0].url==null){
wx.showToast({
title: '你不是vip,无权播放',
})
return ;
}
if(!this.data.isSame){
backgroundAudioManager.src=result.data[0].url;
backgroundAudioManager.title=music.name
backgroundAudioManager.coverImgUrl=this.data.picUrl
backgroundAudioManager.singer=music.ar[0].name
backgroundAudioManager.epname=music.al.name
}
this.setData({
isPlaying:true
})
wx.hideLoading();
wx.cloud.callFunction({
name:'music',
data:{
musicId,
$url:'lyric'
}
}).then(res=>{
console.log(res);
let lyric='暂无歌词'
const lrc=res.result.lrc
if(lrc){
lyric=lrc.lyric
}
this.setData({
lyric
})
})
})
},
togglePlaying(){
if(this.data.isPlaying){
this.setData({
isPause:true
});
backgroundAudioManager.pause();
}else{
this.setData({
isPause:false
});
backgroundAudioManager.play();
}
this.setData({
isPlaying:!this.data.isPlaying,
// isPause:!this.data.isPause
});
app.setIsPause(this.data.isPause)
console.log(app.getIsPause());
},
//上一首
onTrev(){
nowPlayingIndex--
if(nowPlayingIndex<0){
nowPlayingIndex=musiclist.length-1
}
this._loadMusicDetail(musiclist[nowPlayingIndex].id)
},
//下一首
onNext(){
console.log('下一首');
nowPlayingIndex++
if(nowPlayingIndex==musiclist.length){
nowPlayingIndex=0
}
this._loadMusicDetail(musiclist[nowPlayingIndex].id)
},
//是否显示歌词
isShow(){
this.setData({
isShow:!this.data.isShow
})
console.log(this.data.isShow);
},
onPlay(){
this.setData({
isPlaying:true
})
},
onPause(){
this.setData({
isPlaying:false
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.togglePlaying()
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
},
//自定义方法
//暂停播放
})
以上是app.js
老师我通过isPause 来判断是不是退出播放器页面前是否按了暂停 如果暂停的话 在点进去同一首歌曲就不会自动播放 效果实现不了 试过在调用 _loadMusicDetail方法前 判断 好像不行