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 @@ + + + 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 {