diff --git a/src/lang/en-us.json b/src/lang/en-us.json
index eb971193..3da048dd 100644
--- a/src/lang/en-us.json
+++ b/src/lang/en-us.json
@@ -434,6 +434,7 @@
"sync__title": "Choose how to synchronize the list with {name}",
"tag__high_quality": "HQ",
"tag__lossless": "SQ",
+ "tag__lossless_24bit": "24bit",
"theme_auto": "Auto",
"theme_auto_tip": "Right-click to open the light and dark theme settings window",
"theme_black": "Black",
diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json
index 795079ec..75a91179 100644
--- a/src/lang/zh-cn.json
+++ b/src/lang/zh-cn.json
@@ -434,6 +434,7 @@
"sync__title": "选择与 {name} 的列表同步方式",
"tag__high_quality": "HQ",
"tag__lossless": "SQ",
+ "tag__lossless_24bit": "24bit",
"theme_auto": "道法自然",
"theme_auto_tip": "鼠标 右击 可打开亮、暗主题设置窗口",
"theme_black": "黑灯瞎火",
diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json
index ef966429..b2c2a0f0 100644
--- a/src/lang/zh-tw.json
+++ b/src/lang/zh-tw.json
@@ -434,6 +434,7 @@
"sync__title": "選擇與 {name} 的列表同步方式",
"tag__high_quality": "HQ",
"tag__lossless": "SQ",
+ "tag__lossless_24bit": "24bit",
"theme_auto": "道法自然",
"theme_auto_tip": "鼠標 右擊 可打開亮、暗主題設置窗口",
"theme_black": "黑燈瞎火",
diff --git a/src/renderer/components/common/DownloadModal.vue b/src/renderer/components/common/DownloadModal.vue
index 34ca4d85..0bce84fd 100644
--- a/src/renderer/components/common/DownloadModal.vue
+++ b/src/renderer/components/common/DownloadModal.vue
@@ -55,6 +55,7 @@ export default {
},
getTypeName(type) {
switch (type) {
+ case 'flac32bit':
case 'flac':
case 'ape':
case 'wav':
diff --git a/src/renderer/components/common/DownloadMultipleModal.vue b/src/renderer/components/common/DownloadMultipleModal.vue
index 8106840b..7a306240 100644
--- a/src/renderer/components/common/DownloadMultipleModal.vue
+++ b/src/renderer/components/common/DownloadMultipleModal.vue
@@ -5,6 +5,7 @@
{{$t('download__normal')}} - 128K
{{$t('download__high_quality')}} - 320K
{{$t('download__lossless')}} - FLAC
+ {{$t('download__lossless')}} - FLAC 24bit
diff --git a/src/renderer/components/material/OnlineList/index.vue b/src/renderer/components/material/OnlineList/index.vue
index fe0a8ac4..2ea43385 100644
--- a/src/renderer/components/material/OnlineList/index.vue
+++ b/src/renderer/components/material/OnlineList/index.vue
@@ -20,9 +20,10 @@ div(:class="$style.songList")
div.list-item(@click="handleListItemClick($event, index)" @contextmenu="handleListItemRightClick($event, index)"
:class="[{ selected: rightClickSelectedIndex == index }, { active: selectedList.includes(item) }]")
div.list-item-cell.nobreak.center(:style="{ width: rowWidth.r1 }" style="padding-left: 3px; padding-right: 3px;" :class="$style.noSelect" @click.stop) {{index + 1}}
- div.list-item-cell.auto(:style="{ width: rowWidth.r2 }" :aria-label="item.name + ((item._types.ape || item._types.flac || item._types.wav) ? ` - ${$t('tag__lossless')}` : item._types['320k'] ? ` - ${$t('tag__high_quality')}` : '')")
+ div.list-item-cell.auto(:style="{ width: rowWidth.r2 }" :aria-label="item.name + (item._types.flac32bit ? ` - ${$t('tag__lossless_24bit')}` : (item._types.ape || item._types.flac || item._types.wav) ? ` - ${$t('tag__lossless')}` : item._types['320k'] ? ` - ${$t('tag__high_quality')}` : '')")
span.select {{item.name}}
- span.badge.badge-theme-success(:class="[$style.labelQuality, $style.noSelect]" v-if="item._types.ape || item._types.flac || item._types.wav") {{$t('tag__lossless')}}
+ span.badge.badge-theme-success(:class="[$style.labelQuality, $style.noSelect]" v-if="item._types.flac32bit") {{$t('tag__lossless_24bit')}}
+ span.badge.badge-theme-success(:class="[$style.labelQuality, $style.noSelect]" v-else-if="item._types.ape || item._types.flac || item._types.wav") {{$t('tag__lossless')}}
span.badge.badge-theme-info(:class="[$style.labelQuality, $style.noSelect]" v-else-if="item._types['320k']") {{$t('tag__high_quality')}}
div.list-item-cell(:style="{ width: rowWidth.r3 }" :aria-label="item.singer")
span.select {{item.singer}}
diff --git a/src/renderer/store/modules/download.js b/src/renderer/store/modules/download.js
index 2159509e..e9729436 100644
--- a/src/renderer/store/modules/download.js
+++ b/src/renderer/store/modules/download.js
@@ -69,6 +69,7 @@ const getExt = type => {
case 'ape':
return 'ape'
case 'flac':
+ case 'flac32bit':
return 'flac'
case 'wav':
return 'wav'
diff --git a/src/renderer/utils/music/mg/leaderboard.js b/src/renderer/utils/music/mg/leaderboard.js
index 21b36477..caa35c90 100644
--- a/src/renderer/utils/music/mg/leaderboard.js
+++ b/src/renderer/utils/music/mg/leaderboard.js
@@ -103,28 +103,28 @@ export default {
let size
switch (type.formatType) {
case 'PQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: '128k', size })
_types['128k'] = {
size,
}
break
case 'HQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: '320k', size })
_types['320k'] = {
size,
}
break
case 'SQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: 'flac', size })
_types.flac = {
size,
}
break
case 'ZQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: 'flac32bit', size })
_types.flac32bit = {
size,
diff --git a/src/renderer/utils/music/mg/musicSearch.js b/src/renderer/utils/music/mg/musicSearch.js
index 47ce6b5a..77595b60 100644
--- a/src/renderer/utils/music/mg/musicSearch.js
+++ b/src/renderer/utils/music/mg/musicSearch.js
@@ -47,28 +47,28 @@ export default {
let size
switch (type.formatType) {
case 'PQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: '128k', size })
_types['128k'] = {
size,
}
break
case 'HQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: '320k', size })
_types['320k'] = {
size,
}
break
case 'SQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: 'flac', size })
_types.flac = {
size,
}
break
case 'ZQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: 'flac32bit', size })
_types.flac32bit = {
size,
diff --git a/src/renderer/utils/music/mg/songList.js b/src/renderer/utils/music/mg/songList.js
index e0fc3bf1..de789a7d 100644
--- a/src/renderer/utils/music/mg/songList.js
+++ b/src/renderer/utils/music/mg/songList.js
@@ -167,28 +167,28 @@ export default {
let size
switch (type.formatType) {
case 'PQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: '128k', size })
_types['128k'] = {
size,
}
break
case 'HQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: '320k', size })
_types['320k'] = {
size,
}
break
case 'SQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: 'flac', size })
_types.flac = {
size,
}
break
case 'ZQ':
- size = sizeFormate(type.size)
+ size = sizeFormate(type.size ?? type.androidSize)
types.push({ type: 'flac32bit', size })
_types.flac32bit = {
size,
diff --git a/src/renderer/views/Search.vue b/src/renderer/views/Search.vue
index e78c9ab8..d74f6e9d 100644
--- a/src/renderer/views/Search.vue
+++ b/src/renderer/views/Search.vue
@@ -22,7 +22,8 @@ div(:class="$style.search")
td.nobreak.center(style="width: 5%; padding-left: 3px; padding-right: 3px;" :class="$style.noSelect" @click.stop) {{index + 1}}
td.break
span.select {{item.name}}
- span.badge.badge-theme-success(:class="[$style.labelQuality, $style.noSelect]" v-if="item._types.ape || item._types.flac || item._types.wav") {{$t('tag__lossless')}}
+ span.badge.badge-theme-success(:class="[$style.labelQuality, $style.noSelect]" v-if="item._types.flac32bit") {{$t('tag__lossless_24bit')}}
+ span.badge.badge-theme-success(:class="[$style.labelQuality, $style.noSelect]" v-else-if="item._types.ape || item._types.flac || item._types.wav") {{$t('tag__lossless')}}
span.badge.badge-theme-info(:class="[$style.labelQuality, $style.noSelect]" v-else-if="item._types['320k']") {{$t('tag__high_quality')}}
span(:class="[$style.labelSource, $style.noSelect]" v-if="searchSourceId == 'all'") {{item.source}}
td.break(style="width: 22%;")