From e246d4224de0d2cf76f28b54e0f59c2acba9e0ee Mon Sep 17 00:00:00 2001 From: Folltoshe Date: Thu, 29 Jun 2023 02:20:47 +0800 Subject: [PATCH] fix --- src/renderer/core/music/utils.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/renderer/core/music/utils.ts b/src/renderer/core/music/utils.ts index 6763f573..0ee7bdb4 100644 --- a/src/renderer/core/music/utils.ts +++ b/src/renderer/core/music/utils.ts @@ -162,10 +162,9 @@ export const getPlayQuality = (musicInfo: LX.Music.MusicInfoOnline): LX.Quality 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[] - quality?: LX.Quality - rawQuality?: LX.Quality + quality?: LX.Quality | null onToggleSource: (musicInfo?: LX.Music.MusicInfoOnline) => void isRefresh: boolean retryedSource?: LX.OnlineSource[] @@ -191,11 +190,10 @@ export const getOnlineOtherSourceMusicUrl = async({ musicInfos, quality, onToggl } if (!musicInfo || !itemQuality) { - const rangeType = sliceQualityList(rawQuality, true) - if (appSetting['player.autoLowerQualityOnError'] && rawQuality != '128k' && rangeType.length > 0) { - for (const type of rangeType) { - if (musicInfo.meta._qualitys[type]) return getOnlineOtherSourceMusicUrl({ musicInfos, quality: type, onToggleSource, isRefresh, retryedSource, rawQuality }) - } + if (appSetting['player.autoLowerQualityOnError'] && quality && quality != '128k') { + const rangeType = sliceQualityList(quality, true) + const type = rangeType[0] + if (rangeType.length > 0 && type) return getOnlineOtherSourceMusicUrl({ musicInfos, quality: type, onToggleSource, isRefresh, retryedSource: [] }) } throw new Error(window.i18n.t('toggle_source_failed')) } @@ -217,7 +215,7 @@ export const getOnlineOtherSourceMusicUrl = async({ musicInfos, quality, onToggl }).catch((err: any) => { if (err.message == requestMsg.tooManyRequests) throw 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], onToggleSource, quality: rawQuality ?? quality, - rawQuality: rawQuality ?? quality, isRefresh, retryedSource: [musicInfo.source], })