feat: 支持Hi-Res (#1585)

master
memorydream 3 years ago committed by GitHub
parent 5dd00bec87
commit 93c7ba2fd8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -13,18 +13,23 @@ import {
* 说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口, 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url, * 说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口, 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url,
* !!!未登录状态返回试听片段(返回字段包含被截取的正常歌曲的开始时间和结束时间) * !!!未登录状态返回试听片段(返回字段包含被截取的正常歌曲的开始时间和结束时间)
* @param {string} id - 音乐的 id例如 id=405998841,33894312 * @param {string} id - 音乐的 id例如 id=405998841,33894312
* @param {string} sqBr - flac(SQ)的比特率
* @param {string} hiResBr - hi-res的比特率
*/ */
export function getMP3(id) { export function getMP3(id, sqBr, hiResBr) {
let br = const getBr = (quality, sqBr, hiResBr) => {
store.state.settings?.musicQuality !== undefined if (quality === undefined) return 320000;
? store.state.settings.musicQuality if (quality === 'flac' && sqBr) return sqBr;
: 320000; if (quality === '999000' && hiResBr) return hiResBr;
return quality;
};
return request({ return request({
url: '/song/url', url: '/song/url',
method: 'get', method: 'get',
params: { params: {
id, id,
br, br: getBr(store.state.settings?.musicQuality, sqBr, hiResBr),
}, },
}); });
} }

@ -355,7 +355,7 @@ export default class {
} }
_getAudioSourceFromNetease(track) { _getAudioSourceFromNetease(track) {
if (isAccountLoggedIn()) { 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]) return null;
if (!result.data[0].url) return null; if (!result.data[0].url) return null;
if (result.data[0].freeTrialInfo !== null) return null; // 跳过只能试听的歌曲 if (result.data[0].freeTrialInfo !== null) return null; // 跳过只能试听的歌曲

@ -86,9 +86,10 @@
<option value="320000"> <option value="320000">
{{ $t('settings.musicQuality.high') }} - 320Kbps {{ $t('settings.musicQuality.high') }} - 320Kbps
</option> </option>
<option value="999000"> <option value="flac">
{{ $t('settings.musicQuality.lossless') }} - FLAC {{ $t('settings.musicQuality.lossless') }} - FLAC
</option> </option>
<option value="999000">Hi-Res</option>
</select> </select>
</div> </div>
</div> </div>
@ -815,8 +816,7 @@ export default {
}, },
musicQuality: { musicQuality: {
get() { get() {
if (this.settings.musicQuality === undefined) return 320000; return this.settings.musicQuality ?? 320000;
return this.settings.musicQuality;
}, },
set(value) { set(value) {
if (value === this.settings.musicQuality) return; if (value === this.settings.musicQuality) return;

Loading…
Cancel
Save