添加一个获取歌曲URL超时的定时器

pull/733/head
lyswhut 2021-12-15 09:00:55 +08:00
parent 2359a1444b
commit ab1562ea33
1 changed files with 8 additions and 3 deletions

View File

@ -51,7 +51,7 @@ const getPlayType = (highQuality, songInfo) => {
return type return type
} }
const useDelayNextTimeout = ({ playNext }) => { const useDelayNextTimeout = ({ playNext, timeout }) => {
let delayNextTimeout let delayNextTimeout
const clearDelayNextTimeout = () => { const clearDelayNextTimeout = () => {
// console.log(this.delayNextTimeout) // console.log(this.delayNextTimeout)
@ -64,7 +64,7 @@ const useDelayNextTimeout = ({ playNext }) => {
const addDelayNextTimeout = () => { const addDelayNextTimeout = () => {
clearDelayNextTimeout() clearDelayNextTimeout()
delayNextTimeout = Math.random() delayNextTimeout = Math.random()
wait(5000, delayNextTimeout).then(() => { wait(timeout, delayNextTimeout).then(() => {
delayNextTimeout = null delayNextTimeout = null
playNext() playNext()
}).catch(_ => _) }).catch(_ => _)
@ -87,11 +87,14 @@ export default ({ setting }) => {
const clearPlayedList = useCommit('player', 'clearPlayedList') const clearPlayedList = useCommit('player', 'clearPlayedList')
const setPlayedList = useCommit('player', 'setPlayedList') const setPlayedList = useCommit('player', 'setPlayedList')
const { addDelayNextTimeout, clearDelayNextTimeout } = useDelayNextTimeout({ playNext, timeout: 5000 })
const { addDelayNextTimeout: addLoadTimeout, clearDelayNextTimeout: clearLoadTimeout } = useDelayNextTimeout({ playNext, timeout: 123000 })
const setUrl = (targetSong, isRefresh, isRetryed = false) => { const setUrl = (targetSong, isRefresh, isRetryed = false) => {
let type = getPlayType(setting.value.player.highQuality, targetSong) let type = getPlayType(setting.value.player.highQuality, targetSong)
// this.musicInfo.url = await getMusicUrl(targetSong, type) // this.musicInfo.url = await getMusicUrl(targetSong, type)
setAllStatus(t('player__geting_url')) setAllStatus(t('player__geting_url'))
addLoadTimeout()
return getUrl({ return getUrl({
musicInfo: targetSong, musicInfo: targetSong,
@ -113,6 +116,8 @@ export default ({ setting }) => {
setAllStatus(err.message) setAllStatus(err.message)
addDelayNextTimeout() addDelayNextTimeout()
return Promise.reject(err) return Promise.reject(err)
}).finally(() => {
clearLoadTimeout()
}) })
} }
const setImg = ({ listId, musicInfo: targetSong }) => { const setImg = ({ listId, musicInfo: targetSong }) => {
@ -154,7 +159,7 @@ export default ({ setting }) => {
window.eventHub.emit(eventPlayerNames.updateLyric, musicInfo) window.eventHub.emit(eventPlayerNames.updateLyric, musicInfo)
}) })
} }
const { addDelayNextTimeout, clearDelayNextTimeout } = useDelayNextTimeout({ playNext })
usePlayProgress({ setting, playNext }) usePlayProgress({ setting, playNext })
useMediaSessionInfo({ playPrev, playNext }) useMediaSessionInfo({ playPrev, playNext })
usePlayEvent({ usePlayEvent({