Skip to content

Commit c7deba3

Browse files
authored
Merge pull request #729 from MoYingJi/pr/cq
fix(helper): 云盘歌曲无法正确获取音质
2 parents 13066eb + ab0b8e6 commit c7deba3

1 file changed

Lines changed: 27 additions & 12 deletions

File tree

src/utils/helper.ts

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -406,19 +406,34 @@ export const handleSongQuality = (
406406
if (song >= 160000) return QualityType.MQ;
407407
return QualityType.LQ;
408408
}
409-
// 含有 level 特殊处理
410-
if (typeof song === "object" && "level" in song) {
411-
if (song.level === "jymaster") return QualityType.Master;
412-
if (song.level === "dolby") return QualityType.Dolby;
413-
if (song.level === "sky") return QualityType.Spatial;
414-
if (song.level === "jyeffect") return QualityType.Surround;
415-
if (song.level === "hires") return QualityType.HiRes;
416-
if (song.level === "lossless") return QualityType.SQ;
417-
if (song.level === "exhigh") return QualityType.HQ;
418-
if (song.level === "higher") return QualityType.MQ;
419-
if (song.level === "standard") return QualityType.LQ;
420-
return undefined;
409+
410+
const levelQualityMap = {
411+
"jymaster": QualityType.Master,
412+
"dolby": QualityType.Dolby,
413+
"sky": QualityType.Spatial,
414+
"jyeffect": QualityType.Surround,
415+
"hires": QualityType.HiRes,
416+
"lossless": QualityType.SQ,
417+
"exhigh": QualityType.HQ,
418+
"higher": QualityType.MQ,
419+
"standard": QualityType.LQ,
420+
}
421+
422+
if (typeof song === "object" && song) {
423+
// 含有 level 特殊处理
424+
if ("level" in song) {
425+
const quality = levelQualityMap[song.level];
426+
if (quality) return quality;
427+
}
428+
// 云盘歌曲适配
429+
if ("privilege" in song) {
430+
const privilege = song.privilege;
431+
const quality = levelQualityMap[privilege?.playMaxBrLevel]
432+
?? levelQualityMap[privilege?.plLevel];
433+
if (quality) return quality;
434+
}
421435
}
436+
422437
const order = [
423438
{ key: "jm", type: QualityType.Master },
424439
{ key: "db", type: QualityType.Dolby },

0 commit comments

Comments
 (0)