diff --git a/src/lang/en-us.json b/src/lang/en-us.json
index 31d81c47..3215cc68 100644
--- a/src/lang/en-us.json
+++ b/src/lang/en-us.json
@@ -655,6 +655,7 @@
"sync__overwrite_label": "Overwrite",
"sync__overwrite_tip": "Overwrite: ",
"sync_status_disabled": "not connected",
+ "tag__low_quality": "LQ",
"tag__high_quality": "HQ",
"tag__lossless": "SQ",
"tag__lossless_24bit": "24bit",
diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json
index 5ec6fda7..01906a06 100644
--- a/src/lang/zh-cn.json
+++ b/src/lang/zh-cn.json
@@ -655,6 +655,7 @@
"sync__overwrite_label": "覆盖",
"sync__overwrite_tip": "覆盖:",
"sync_status_disabled": "未连接",
+ "tag__low_quality": "LQ",
"tag__high_quality": "HQ",
"tag__lossless": "SQ",
"tag__lossless_24bit": "24bit",
diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json
index 920d0f19..07f9559f 100644
--- a/src/lang/zh-tw.json
+++ b/src/lang/zh-tw.json
@@ -655,6 +655,7 @@
"sync__overwrite_label": "覆寫",
"sync__overwrite_tip": "覆寫:",
"sync_status_disabled": "未連線",
+ "tag__low_quality": "LQ",
"tag__high_quality": "HQ",
"tag__lossless": "SQ",
"tag__lossless_24bit": "24bit",
diff --git a/src/renderer/components/layout/PlayBar/FullWidthProgress.vue b/src/renderer/components/layout/PlayBar/FullWidthProgress.vue
index 965f8268..40f05940 100644
--- a/src/renderer/components/layout/PlayBar/FullWidthProgress.vue
+++ b/src/renderer/components/layout/PlayBar/FullWidthProgress.vue
@@ -9,7 +9,7 @@
- {{ title }}
+ {{ title }}
{{ statusText }}
@@ -48,6 +48,8 @@ import { computed } from '@common/utils/vueTools'
import { useRouter } from '@common/utils/vueRouter'
import { clipboardWriteText } from '@common/utils/electron'
import ControlBtns from './ControlBtns.vue'
+import Quality from './Quality.vue'
+
// import PlayProgress from './PlayProgress'
import usePlayProgress from '@renderer/utils/compositions/usePlayProgress'
// import { lyric } from '@renderer/core/share/lyric'
@@ -71,6 +73,7 @@ export default {
name: 'CorePlayBar',
components: {
ControlBtns,
+ Quality,
// PlayProgress,
},
setup() {
diff --git a/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue b/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue
index c48c9fc2..cbded0bc 100644
--- a/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue
+++ b/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue
@@ -6,7 +6,7 @@
- {{ title }}
+ {{ title }}
{{ statusText }}
@@ -48,6 +48,7 @@ import { computed } from '@common/utils/vueTools'
import { useRouter } from '@common/utils/vueRouter'
import { clipboardWriteText } from '@common/utils/electron'
import ControlBtns from './ControlBtns.vue'
+import Quality from './Quality.vue'
// import PlayProgress from './PlayProgress'
import usePlayProgress from '@renderer/utils/compositions/usePlayProgress'
// import { lyric } from '@renderer/core/share/lyric'
@@ -71,6 +72,7 @@ export default {
name: 'CorePlayBar',
components: {
ControlBtns,
+ Quality,
// PlayProgress,
},
setup() {
diff --git a/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue b/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue
index ce0084d1..7a7bd3f5 100644
--- a/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue
+++ b/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue
@@ -6,7 +6,7 @@
- {{ title }}
+ {{ title }}
{{ statusText }}
@@ -51,6 +51,7 @@ import { useRouter } from '@common/utils/vueRouter'
import { clipboardWriteText } from '@common/utils/electron'
import ControlBtns from './ControlBtns.vue'
import PlayProgress from './PlayProgress.vue'
+import Quality from './Quality.vue'
import usePlayProgress from '@renderer/utils/compositions/usePlayProgress'
// import { lyric } from '@renderer/core/share/lyric'
import {
@@ -74,6 +75,7 @@ export default {
components: {
ControlBtns,
PlayProgress,
+ Quality,
},
setup() {
const router = useRouter()
@@ -118,6 +120,8 @@ export default {
: ''
})
+ const quality = computed(() => playMusicInfo.quality)
+
// onBeforeUnmount(() => {
// window.eventHub.emit(eventPlayerNames.setTogglePlay)
// })
@@ -140,6 +144,7 @@ export default {
playPrev,
handleToMusicLocation,
isShowPlayerDetail,
+ quality,
}
},
}
diff --git a/src/renderer/components/layout/PlayBar/Quality.vue b/src/renderer/components/layout/PlayBar/Quality.vue
new file mode 100644
index 00000000..4e111753
--- /dev/null
+++ b/src/renderer/components/layout/PlayBar/Quality.vue
@@ -0,0 +1,18 @@
+
+ {{ $t('tag__lossless_24bit') }}
+ {{ $t('tag__lossless') }}
+ {{ $t('tag__high_quality') }}
+ {{ $t('tag__low_quality') }}
+
+
+
diff --git a/src/renderer/core/player/action.ts b/src/renderer/core/player/action.ts
index 88995d0a..f4303678 100644
--- a/src/renderer/core/player/action.ts
+++ b/src/renderer/core/player/action.ts
@@ -5,6 +5,7 @@ import {
clearPlayedList,
clearTempPlayeList,
setPlayMusicInfo,
+ setPlayMusicInfoQuality,
addPlayedList,
setMusicInfo,
setAllStatus,
@@ -133,6 +134,7 @@ export const setMusicUrl = (musicInfo: LX.Music.MusicInfo | LX.Download.ListItem
void getMusicPlayUrl(musicInfo, isRefresh).then((url) => {
if (!url) return
setResource(url)
+ setPlayMusicInfoQuality(musicInfo)
}).catch((err: any) => {
console.log(err)
setAllStatus(err.message)
diff --git a/src/renderer/store/player/action.ts b/src/renderer/store/player/action.ts
index 87977fc1..085f5166 100644
--- a/src/renderer/store/player/action.ts
+++ b/src/renderer/store/player/action.ts
@@ -13,15 +13,16 @@ import {
playedList,
tempPlayList,
} from './state'
+import { appSetting } from '@renderer/store/setting'
import { getListMusicsFromCache } from '@renderer/store/list/action'
import { downloadList } from '@renderer/store/download/state'
import { setProgress } from './playProgress'
import { playNext } from '@renderer/core/player'
+import { getPlayQuality } from '@renderer/core/music/utils'
import { LIST_IDS } from '@common/constants'
import { toRaw } from '@common/utils/vueTools'
import { arrPush, arrUnshift } from '@common/utils/common'
-
type PlayerMusicInfoKeys = keyof typeof musicInfo
const musicInfoKeys: PlayerMusicInfoKeys[] = Object.keys(musicInfo) as PlayerMusicInfoKeys[]
@@ -196,7 +197,19 @@ export const setPlayMusicInfo = (listId: string | null, musicInfo: LX.Download.L
window.app_event.musicToggled()
}
}
-
+/**
+ * 设置当前播放歌曲的音质(如果是在线歌曲)
+ * @param musicInfo 歌曲信息
+ */
+export const setPlayMusicInfoQuality = (musicInfo: LX.Music.MusicInfo | LX.Download.ListItem) => {
+ if (!('progress' in musicInfo)) {
+ playMusicInfo.quality = musicInfo.source !== 'local'
+ ? getPlayQuality(appSetting['player.playQuality'], musicInfo)
+ : undefined
+ } else {
+ playMusicInfo.quality = undefined
+ }
+}
/**
* 将歌曲添加到已播放列表
* @param playMusicInfo playMusicInfo对象
diff --git a/src/renderer/store/player/state.ts b/src/renderer/store/player/state.ts
index 48aea238..2868d716 100644
--- a/src/renderer/store/player/state.ts
+++ b/src/renderer/store/player/state.ts
@@ -53,10 +53,15 @@ export const playMusicInfo = shallowReactive<{
* 是否属于 “稍后播放”
*/
isTempPlay: boolean
+ /**
+ * 当前播放音质
+ */
+ quality?: LX.Quality
}>({
listId: null,
musicInfo: null,
isTempPlay: false,
+ quality: undefined,
})
export const playInfo = shallowReactive({
playIndex: -1,
diff --git a/src/renderer/types/player.d.ts b/src/renderer/types/player.d.ts
index f627e71f..c23b4c15 100644
--- a/src/renderer/types/player.d.ts
+++ b/src/renderer/types/player.d.ts
@@ -14,6 +14,10 @@ declare namespace LX {
* 是否属于 “稍后播放”
*/
isTempPlay: boolean
+ /**
+ * 当前播放音质
+ */
+ quality?: LX.Quality
}
interface PlayInfo {