From 93c7ba2fd87c8fdfccdb9afbd9567168a7700e7b Mon Sep 17 00:00:00 2001
From: memorydream <34763046+memorydream@users.noreply.github.com>
Date: Sun, 1 May 2022 01:24:20 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81Hi-Res=20(#1585)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/track.js | 17 +++++++++++------
src/utils/Player.js | 2 +-
src/views/settings.vue | 6 +++---
3 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/src/api/track.js b/src/api/track.js
index 472dc6a..5b68082 100644
--- a/src/api/track.js
+++ b/src/api/track.js
@@ -13,18 +13,23 @@ import {
* 说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口, 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url,
* !!!未登录状态返回试听片段(返回字段包含被截取的正常歌曲的开始时间和结束时间)
* @param {string} id - 音乐的 id,例如 id=405998841,33894312
+ * @param {string} sqBr - flac(SQ)的比特率
+ * @param {string} hiResBr - hi-res的比特率
*/
-export function getMP3(id) {
- let br =
- store.state.settings?.musicQuality !== undefined
- ? store.state.settings.musicQuality
- : 320000;
+export function getMP3(id, sqBr, hiResBr) {
+ const getBr = (quality, sqBr, hiResBr) => {
+ if (quality === undefined) return 320000;
+ if (quality === 'flac' && sqBr) return sqBr;
+ if (quality === '999000' && hiResBr) return hiResBr;
+ return quality;
+ };
+
return request({
url: '/song/url',
method: 'get',
params: {
id,
- br,
+ br: getBr(store.state.settings?.musicQuality, sqBr, hiResBr),
},
});
}
diff --git a/src/utils/Player.js b/src/utils/Player.js
index 0274dac..894d86e 100644
--- a/src/utils/Player.js
+++ b/src/utils/Player.js
@@ -355,7 +355,7 @@ export default class {
}
_getAudioSourceFromNetease(track) {
if (isAccountLoggedIn()) {
- return getMP3(track.id).then(result => {
+ return getMP3(track.id, track.sq?.br, track.hr?.br).then(result => {
if (!result.data[0]) return null;
if (!result.data[0].url) return null;
if (result.data[0].freeTrialInfo !== null) return null; // 跳过只能试听的歌曲
diff --git a/src/views/settings.vue b/src/views/settings.vue
index 749202a..37d531a 100644
--- a/src/views/settings.vue
+++ b/src/views/settings.vue
@@ -86,9 +86,10 @@
-
+
@@ -815,8 +816,7 @@ export default {
},
musicQuality: {
get() {
- if (this.settings.musicQuality === undefined) return 320000;
- return this.settings.musicQuality;
+ return this.settings.musicQuality ?? 320000;
},
set(value) {
if (value === this.settings.musicQuality) return;