增加收藏歌曲和收藏歌单功能,优化播放器逻辑,修复bug以及体验优化

This commit is contained in:
qier222 2020-10-17 00:18:24 +08:00
parent 5f0ef06786
commit 7f75758b73
28 changed files with 486 additions and 270 deletions

View file

@ -1,24 +1,39 @@
// import { getMP3 } from "@/api/track";
import { updateMediaSessionMetaData } from "@/utils/mediaSession";
import { getTrackDetail, scrobble } from "@/api/track";
export default {
switchTrack({ state, dispatch, commit }, track) {
commit("updateCurrentTrack", track);
switchTrack({ state, dispatch, commit }, basicTrack) {
getTrackDetail(basicTrack.id).then((data) => {
let track = data.songs[0];
track.sort = basicTrack.sort;
console.log(track);
if (track.playable === false) {
dispatch("nextTrack");
return;
}
if (track.playable === false) {
dispatch("nextTrack");
return;
}
updateMediaSessionMetaData(track);
document.title = `${track.name} · ${track.artists[0].name} - YesPlayMusic`;
let time = state.howler.seek();
scrobble({
id: state.player.currentTrack.id,
sourceid: state.player.listInfo.id,
time: time === 0 ? 180 : time,
}).then((data) => {
console.log("scrobble", data);
});
commit(
"replaceMP3",
`https://music.163.com/song/media/outer/url?id=${track.id}`
);
state.howler.once("end", () => {
dispatch("nextTrack");
commit("updateCurrentTrack", track);
updateMediaSessionMetaData(track);
document.title = `${track.name} · ${track.ar[0].name} - YesPlayMusic`;
commit(
"replaceMP3",
`https://music.163.com/song/media/outer/url?id=${track.id}`
);
state.howler.once("end", () => {
dispatch("nextTrack");
});
});
},
playFirstTrackOnList({ state, dispatch }) {
@ -26,7 +41,6 @@ export default {
},
playTrackOnListByID(context, trackID) {
let track = context.state.player.list.find((t) => t.id === trackID);
if (track.playable === false) return;
context.dispatch("switchTrack", track);
},
nextTrack({ state, dispatch }, realNext = false) {

View file

@ -3,6 +3,9 @@ import { Howler } from "howler";
const initState = {
Howler: Howler,
howler: null,
liked: {
songs: [],
},
contextMenu: {
clickObjectID: 0,
showMenu: false,
@ -82,7 +85,7 @@ const initState = {
},
],
user: {
id: 1,
id: 0,
},
},
};

View file

@ -86,4 +86,7 @@ export default {
updateUserInfo(sate, { key, value }) {
state.settings.user[key] = value;
},
updateLikedSongs(state, trackIDs) {
state.liked.songs = trackIDs;
},
};

View file

@ -3,6 +3,9 @@ import { Howler } from "howler";
export default {
Howler: Howler,
howler: null,
liked: {
songs: [],
},
contextMenu: {
clickObjectID: 0,
showMenu: false,