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;