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;