This commit is contained in:
Folltoshe 2023-06-29 02:20:47 +08:00
parent 61128e50fc
commit e246d4224d

View File

@ -162,10 +162,9 @@ export const getPlayQuality = (musicInfo: LX.Music.MusicInfoOnline): LX.Quality
return '128k' return '128k'
} }
export const getOnlineOtherSourceMusicUrl = async({ musicInfos, quality, onToggleSource, isRefresh, retryedSource = [], rawQuality = '128k' }: { export const getOnlineOtherSourceMusicUrl = async({ musicInfos, quality, onToggleSource, isRefresh, retryedSource = [] }: {
musicInfos: LX.Music.MusicInfoOnline[] musicInfos: LX.Music.MusicInfoOnline[]
quality?: LX.Quality quality?: LX.Quality | null
rawQuality?: LX.Quality
onToggleSource: (musicInfo?: LX.Music.MusicInfoOnline) => void onToggleSource: (musicInfo?: LX.Music.MusicInfoOnline) => void
isRefresh: boolean isRefresh: boolean
retryedSource?: LX.OnlineSource[] retryedSource?: LX.OnlineSource[]
@ -191,11 +190,10 @@ export const getOnlineOtherSourceMusicUrl = async({ musicInfos, quality, onToggl
} }
if (!musicInfo || !itemQuality) { if (!musicInfo || !itemQuality) {
const rangeType = sliceQualityList(rawQuality, true) if (appSetting['player.autoLowerQualityOnError'] && quality && quality != '128k') {
if (appSetting['player.autoLowerQualityOnError'] && rawQuality != '128k' && rangeType.length > 0) { const rangeType = sliceQualityList(quality, true)
for (const type of rangeType) { const type = rangeType[0]
if (musicInfo.meta._qualitys[type]) return getOnlineOtherSourceMusicUrl({ musicInfos, quality: type, onToggleSource, isRefresh, retryedSource, rawQuality }) if (rangeType.length > 0 && type) return getOnlineOtherSourceMusicUrl({ musicInfos, quality: type, onToggleSource, isRefresh, retryedSource: [] })
}
} }
throw new Error(window.i18n.t('toggle_source_failed')) throw new Error(window.i18n.t('toggle_source_failed'))
} }
@ -217,7 +215,7 @@ export const getOnlineOtherSourceMusicUrl = async({ musicInfos, quality, onToggl
}).catch((err: any) => { }).catch((err: any) => {
if (err.message == requestMsg.tooManyRequests) throw err if (err.message == requestMsg.tooManyRequests) throw err
console.log(err) console.log(err)
return getOnlineOtherSourceMusicUrl({ musicInfos, quality, onToggleSource, isRefresh, retryedSource, rawQuality }) return getOnlineOtherSourceMusicUrl({ musicInfos, quality: quality ?? itemQuality, onToggleSource, isRefresh, retryedSource })
}) })
} }
@ -278,7 +276,6 @@ export const handleGetOnlineMusicUrl = async({ musicInfo, quality, onToggleSourc
musicInfos: [...otherSource], musicInfos: [...otherSource],
onToggleSource, onToggleSource,
quality: rawQuality ?? quality, quality: rawQuality ?? quality,
rawQuality: rawQuality ?? quality,
isRefresh, isRefresh,
retryedSource: [musicInfo.source], retryedSource: [musicInfo.source],
}) })