diff --git a/src/components/TrackListItem.vue b/src/components/TrackListItem.vue index d8dc8eb..bb574ae 100644 --- a/src/components/TrackListItem.vue +++ b/src/components/TrackListItem.vue @@ -15,7 +15,10 @@ />
{{ track.no diff --git a/src/store/actions.js b/src/store/actions.js index 4cea2e1..1cc751c 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -1,6 +1,7 @@ import { updateMediaSessionMetaData } from "@/utils/mediaSession"; import { getTrackDetail, scrobble, getMP3 } from "@/api/track"; import { isLoggedIn } from "@/utils/auth"; +import { updateHttps } from "@/utils/common" export default { switchTrack({ state, dispatch, commit }, basicTrack) { @@ -43,7 +44,11 @@ export default { if (isLoggedIn) { getMP3(track.id).then((data) => { - commitMP3(data.data[0].url.replace(/^http:/, "https:")); + // 未知情况下会没有返回数据导致报错,增加防范逻辑 + if (data.data[0]) { + const url = updateHttps(data.data[0].url); + commitMP3(url); + } }); } else { commitMP3(`https://music.163.com/song/media/outer/url?id=${track.id}`); diff --git a/src/utils/common.js b/src/utils/common.js index d061bf9..6fcd59f 100644 --- a/src/utils/common.js +++ b/src/utils/common.js @@ -70,3 +70,8 @@ export function throttle(fn, time) { }, time); }; } + +export function updateHttps(url) { + if (!url) return '' + return url.replace(/^http:/, "https:"); +} \ No newline at end of file diff --git a/src/views/loginAccount.vue b/src/views/loginAccount.vue index 36c8918..2958bc0 100644 --- a/src/views/loginAccount.vue +++ b/src/views/loginAccount.vue @@ -12,7 +12,7 @@