From 0a71e34459ba73fc7f8a174930355bb469d52d1b Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 18 Sep 2020 12:03:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=92=AD=E6=94=BE=E7=8A=B6=E6=80=81=E6=A0=8F?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A1=8C=E9=9D=A2=E6=AD=8C=E8=AF=8D=E7=9A=84?= =?UTF-8?q?=E5=BC=80=E5=85=B3=E3=80=81=E6=92=AD=E6=94=BE=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E7=9A=84=E5=88=87=E6=8D=A2=E3=80=81=E6=AD=8C=E6=9B=B2=E7=9A=84?= =?UTF-8?q?=E6=94=B6=E8=97=8F=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + src/main/index.js | 2 +- src/renderer/components/core/Icons.vue | 41 +++++++ src/renderer/components/core/Player.vue | 113 ++++++++++++++++-- .../components/material/ListButtons.vue | 16 +-- .../components/material/listAddModal.vue | 2 +- .../material/listAddMultipleModal.vue | 2 +- src/renderer/lang/en-us/core/player.json | 10 +- src/renderer/lang/zh-cn/core/player.json | 10 +- src/renderer/lang/zh-tw/core/player.json | 10 +- src/renderer/store/mutations.js | 6 + src/renderer/utils/music/index.js | 4 +- src/renderer/views/Setting.vue | 6 + 13 files changed, 194 insertions(+), 29 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index ccd410fe..98762d6b 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -5,6 +5,7 @@ - 新增大部分平台的歌词翻译,感谢 @InoriHimea 提供的[krc解码算法](https://github.com/lyswhut/lx-music-desktop/issues/296#issuecomment-683285784) - 新增`显示歌词翻译`设置,默认开启,仅支持某些平台,注:无论该设置是否开启,嵌入或下载歌词时都不会带上翻译 - 新增`显示切换动画`设置,默认开启,关闭时将基本禁用软件内的所有切换动画 +- 播放状态栏新增桌面歌词的开关、播放模式的切换、歌曲的收藏按钮 ### 修复 diff --git a/src/main/index.js b/src/main/index.js index ec5d955a..f480f0f4 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -35,7 +35,7 @@ app.commandLine.appendSwitch('wm-window-animations-disabled') // https://github.com/electron/electron/issues/18397 // 开发模式下为true时 多次引入native模块会导致渲染进程卡死 // https://github.com/electron/electron/issues/22791 -// app.allowRendererProcessReuse = !isDev +app.allowRendererProcessReuse = !isDev app.on('web-contents-created', (event, contents) => { diff --git a/src/renderer/components/core/Icons.vue b/src/renderer/components/core/Icons.vue index fd5dcc66..c7e1332d 100644 --- a/src/renderer/components/core/Icons.vue +++ b/src/renderer/components/core/Icons.vue @@ -165,5 +165,46 @@ svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/19 g#icon-window-close(fill='currentColor') //- 0 0 24 24 path(d="M20 6.91L17.09 4L12 9.09L6.91 4L4 6.91L9.09 12L4 17.09L6.91 20L12 14.91L17.09 20L20 17.09L14.91 12L20 6.91Z") + + + g#icon-list-loop(fill='currentColor') + // 0 0 24 24 + path(d="M0 0h24v24H0z" fill="none") + path(d='M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z') + + g#icon-single-loop(fill='currentColor') + // 0 0 24 24 + path(d="M0 0h24v24H0z" fill="none") + path(d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z") + + g#icon-list-random(fill='currentColor') + // 0 0 24 24 + path(d="M0 0h24v24H0z" fill="none") + path(d="M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z") + + g#icon-list-order(fill='currentColor') + // 0 0 24 24 + path(d="M0 0h24v24H0z" fill="none") + path(d="M4 10h12v2H4zm0-4h12v2H4zm0 8h8v2H4zm10 0v6l5-3z") + + g#icon-single(fill='currentColor') + //- 0 0 24 24 + path(d='M18,6.8v9.9h-2.1v-5.3c0-0.8,0-1.2,0-1.4c0-0.2-0.1-0.3-0.3-0.4c-0.1-0.1-0.5-0.1-1-0.1h-0.2V8.4c1-0.3,1.8-0.8,2.3-1.6H18z') + polygon(points='6,18 14.5,12 6,6 ') + + g#icon-desktop-lyric-on(fill='currentColor') + //- 0 0 512 512 + path(d='M162.64,335.554H81.017V152.1H55.143V359.7h107.5V335.554ZM288.807,291.4a117.012,117.012,0,0,0-11.222-20.092,29.568,29.568,0,0,0-13.365-10.562,54.323,54.323,0,0,0,17.225-7.7,50.6,50.6,0,0,0,12.579-12.23,52.253,52.253,0,0,0,7.648-15.724,64.034,64.034,0,0,0,2.573-18.345,67.706,67.706,0,0,0-3.5-22.316,42.831,42.831,0,0,0-11.007-17.233,51.262,51.262,0,0,0-19.227-11.118q-11.722-3.969-28.018-3.971H192.459V359.7H217.9v-92.44h12.008a37.092,37.092,0,0,1,10.078,1.271,24.136,24.136,0,0,1,8.291,4.209,32.591,32.591,0,0,1,7.076,7.941A76.14,76.14,0,0,1,261.79,293.3L289.664,359.7H318.4Zm-13.938-67.106a30.684,30.684,0,0,1-7.862,11.118,33.47,33.47,0,0,1-12.293,6.83,53.247,53.247,0,0,1-16.225,2.3H217.9V175.928H241.92q17.01,0,26.374,8.259t9.363,24.937A38.647,38.647,0,0,1,274.869,224.292ZM456.714,325.229a100.649,100.649,0,0,1-21.156,8.657,84.575,84.575,0,0,1-23.015,3.1q-28.448,0-43.17-20.489t-14.724-60.833a133.161,133.161,0,0,1,4-34.228q4-15.009,11.436-25.413a50.462,50.462,0,0,1,18.083-15.883,51.244,51.244,0,0,1,23.8-5.48,82.427,82.427,0,0,1,23.73,3.256,89.743,89.743,0,0,1,21.013,9.451v-27.8a94.1,94.1,0,0,0-21.442-7.544,112.019,112.019,0,0,0-24.158-2.462q-19.158,0-34.594,7.624a74.755,74.755,0,0,0-26.3,21.68q-10.865,14.056-16.724,34.228T327.632,258.2q0,51.461,21.227,77.748t60.825,26.286a111.234,111.234,0,0,0,47.03-10.324V325.229Z') + + g#icon-desktop-lyric-off(fill='currentColor') + //- 0 0 512 512 + path(d='M162.64,335.554H81.017V152.1H55.143V359.7h107.5V335.554ZM288.807,291.4a117.012,117.012,0,0,0-11.222-20.092,29.568,29.568,0,0,0-13.365-10.562,54.323,54.323,0,0,0,17.225-7.7,50.6,50.6,0,0,0,12.579-12.23,52.253,52.253,0,0,0,7.648-15.724,64.034,64.034,0,0,0,2.573-18.345,67.706,67.706,0,0,0-3.5-22.316,42.831,42.831,0,0,0-11.007-17.233,51.262,51.262,0,0,0-19.227-11.118q-11.722-3.969-28.018-3.971H192.459V359.7H217.9v-92.44h12.008a37.092,37.092,0,0,1,10.078,1.271,24.136,24.136,0,0,1,8.291,4.209,32.591,32.591,0,0,1,7.076,7.941A76.14,76.14,0,0,1,261.79,293.3L289.664,359.7H318.4Zm-13.938-67.106a30.684,30.684,0,0,1-7.862,11.118,33.47,33.47,0,0,1-12.293,6.83,53.247,53.247,0,0,1-16.225,2.3H217.9V175.928H241.92q17.01,0,26.374,8.259t9.363,24.937A38.647,38.647,0,0,1,274.869,224.292ZM456.714,325.229a100.649,100.649,0,0,1-21.156,8.657,84.575,84.575,0,0,1-23.015,3.1q-28.448,0-43.17-20.489t-14.724-60.833a133.161,133.161,0,0,1,4-34.228q4-15.009,11.436-25.413a50.462,50.462,0,0,1,18.083-15.883,51.244,51.244,0,0,1,23.8-5.48,82.427,82.427,0,0,1,23.73,3.256,89.743,89.743,0,0,1,21.013,9.451v-27.8a94.1,94.1,0,0,0-21.442-7.544,112.019,112.019,0,0,0-24.158-2.462q-19.158,0-34.594,7.624a74.755,74.755,0,0,0-26.3,21.68q-10.865,14.056-16.724,34.228T327.632,258.2q0,51.461,21.227,77.748t60.825,26.286a111.234,111.234,0,0,0,47.03-10.324V325.229Z') + path(d='M69.148,97.826l17.7-17.651,333,334-17.7,17.652Z') + + g#icon-add-2(fill='currentColor') + //- 0 0 1024 1024 + path(d='M256,170s-62.469-76.808-141-24C44.762,222.824,84.909,325.08,256,415c21.339-8.361,44-17,44-17,19-6.392,28.155,20.742,16,26-27.589,11.935,5.974-4.141-60,28C-35.524,313.85,43.993,149.031,95,117c86.8-65.89,162,10,162,10s58.158-60.523,140-23c104.032,58.528,64,161.9,45,196-9.152,15.154-39.559-4.159-32-16,20.34-37.888,45.522-107.349-25-150C314.919,103.92,256,170,256,170Z') + path(d='M383,368c-8.1.01-24.77-.155-40,0-15.713.16-15.282,34.964,0,35,15.1,0.035,40,0,40,0s-0.068,42.8,0,48c0.208,15.961,32.261,15.791,32-1-0.072-4.649,0-47,0-47s38.008-.031,43,0c15.732,0.046,14.947-33.98-1-34-4.884.093-42,0-42,0s-0.053-28.341,0-46c0.046-15.189-32.028-15.512-32,0C383.027,337.74,382.782,365.139,383,368Z') + diff --git a/src/renderer/components/core/Player.vue b/src/renderer/components/core/Player.vue index f2d8cd3a..51c864bb 100644 --- a/src/renderer/components/core/Player.vue +++ b/src/renderer/components/core/Player.vue @@ -9,11 +9,31 @@ div(:class="$style.player") div(:class="$style.column1") div(:class="$style.container") div(:class="$style.title" @click="handleCopy(title)" :title="title + $t('core.player.copy_title')") {{title}} - div(:class="$style.volumeContent") - div(:class="[$style.volume, setting.player.isMute ? $style.muted : null]") - div(:class="$style.volumeBar" :style="{ transform: `scaleX(${volume || 0})` }") - div(:class="$style.volumeMask" @mousedown="handleVolumeMsDown" ref="dom_volumeMask" :title="`${$t('core.player.volume')}${parseInt(volume * 100)}%`") + div(:class="$style.controlBtn") + div(:class="$style.volumeContent") + div(:class="[$style.volume, setting.player.isMute ? $style.muted : null]") + div(:class="$style.volumeBar" :style="{ transform: `scaleX(${volume || 0})` }") + div(:class="$style.volumeMask" @mousedown="handleVolumeMsDown" ref="dom_volumeMask" :title="`${$t('core.player.volume')}${parseInt(volume * 100)}%`") + div(:class="$style.titleBtn" @click='toggleDesktopLyric' :title="setting.desktopLyric.enable ? $t('core.player.desktop_lyric_off') : $t('core.player.desktop_lyric_on')") + svg(v-if="setting.desktopLyric.enable" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 512 512' space='preserve') + use(xlink:href='#icon-desktop-lyric-off') + svg(v-else version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 512 512' space='preserve') + use(xlink:href='#icon-desktop-lyric-on') + div(:class="$style.titleBtn" @click='toggleNextPlayMode' :title="nextTogglePlayName") + svg(v-if="setting.player.togglePlayMethod == 'listLoop'" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='80%' viewBox='0 0 24 24' space='preserve') + use(xlink:href='#icon-list-loop') + svg(v-else-if="setting.player.togglePlayMethod == 'random'" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='100%' viewBox='0 0 24 24' space='preserve') + use(xlink:href='#icon-list-random') + svg(v-else-if="setting.player.togglePlayMethod == 'list'" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='120%' viewBox='0 0 24 24' space='preserve') + use(xlink:href='#icon-list-order') + svg(v-else-if="setting.player.togglePlayMethod == 'singleLoop'" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='100%' viewBox='0 0 24 24' space='preserve') + use(xlink:href='#icon-single-loop') + svg(v-else version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='120%' viewBox='0 0 24 24' space='preserve') + use(xlink:href='#icon-single') + div(:class="$style.titleBtn" @click='addMusicTo' :title="$t('core.player.add_music_to')") + svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='80%' viewBox='0 0 512 512' space='preserve') + use(xlink:href='#icon-add-2') //- div(:class="$style.playBtn" @click='handleNext' title="音量") svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 291.063 291.064' space='preserve') use(xlink:href='#icon-sound') @@ -47,6 +67,8 @@ div(:class="$style.player") :lyric="lyric" :list="list" :listId="listId" :playInfo="{ nowPlayTimeStr, maxPlayTimeStr, progress, nowPlayTime, status }" :isPlay="isPlay" @action="handlePlayDetailAction") + + material-list-add-modal(:show="isShowAddMusicTo" :musicInfo="listId == 'download' ? targetSong.musicInfo : targetSong" @close="isShowAddMusicTo = false") svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' style="display: none;") defs g(:id="$style.iconPic") @@ -72,6 +94,13 @@ import path from 'path' let audio +const playNextModes = [ + 'listLoop', + 'random', + 'list', + 'singleLoop', +] + export default { data() { return { @@ -112,6 +141,7 @@ export default { timeout: null, playTime: 0, }, + isShowAddMusicTo: false, } }, computed: { @@ -134,6 +164,15 @@ export default { progress() { return this.nowPlayTime / this.maxPlayTime || 0 }, + nextTogglePlayName() { + switch (this.setting.player.togglePlayMethod) { + case 'listLoop': return this.$t('core.player.play_toggle_mode_list_loop') + case 'random': return this.$t('core.player.play_toggle_mode_random') + case 'singleLoop': return this.$t('core.player.play_toggle_mode_single_loop') + case 'list': return this.$t('core.player.play_toggle_mode_list') + default: return this.$t('core.player.play_toggle_mode_off') + } + }, }, mounted() { this.init() @@ -248,7 +287,7 @@ export default { 'setPlayedList', 'removePlayedList', ]), - ...mapMutations(['setVolume']), + ...mapMutations(['setVolume', 'setPlayNextMode', 'setVisibleDesktopLyric']), ...mapMutations('list', ['updateMusicInfo']), ...mapMutations(['setMediaDeviceId']), handleRegisterEvent(action) { @@ -369,7 +408,7 @@ export default { this.lyric.lines = lines this.lyric.line = 0 }, - offset: 100, + offset: 80, }) this.handleRegisterEvent('on') @@ -626,14 +665,12 @@ export default { }) lrcP - .then(() => { + .catch(() => { + this.status = this.statusText = this.$t('core.player.lyric_error') + }).finally(() => { this.setLyric() this.handleUpdateWinLyricInfo('lyric', { lrc: this.musicInfo.lrc, tlrc: this.musicInfo.tlrc }) }) - .catch(() => { - this.handleUpdateWinLyricInfo('lyric', { lrc: this.musicInfo.lrc, tlrc: this.musicInfo.tlrc }) - this.status = this.statusText = this.$t('core.player.lyric_error') - }) }, handleRemoveMusic() { this.stopPlay() @@ -827,6 +864,18 @@ export default { this.handleUpdateWinLyricInfo('play', audio.currentTime * 1000) } }, + toggleDesktopLyric() { + this.setVisibleDesktopLyric(!this.setting.desktopLyric.enable) + }, + toggleNextPlayMode() { + let index = playNextModes.indexOf(this.setting.player.togglePlayMethod) + if (++index >= playNextModes.length) index = -1 + this.setPlayNextMode(playNextModes[index] || '') + }, + addMusicTo() { + if (!this.musicInfo.songmid) return + this.isShowAddMusicTo = true + }, }, } @@ -916,17 +965,26 @@ export default { } .title { - flex: 1 1 0; - width: 0; + flex: 0 1 auto; + min-width: 0; padding-right: 5px; font-size: 14px; line-height: 18px; .mixin-ellipsis-1; } +.controlBtn { + flex: none; + display: flex; + flex-flow: row nowrap; +} + + .volume-content { + flex: none; position: relative; width: 80px; + margin-right: 10px; display: flex; align-items: center; opacity: .5; @@ -979,6 +1037,32 @@ export default { cursor: pointer; } +.titleBtn { + flex: none; + margin-left: 5px; + height: 100%; + width: 20px; + color: @color-theme; + display: flex; + flex-flow: column nowrap; + justify-content: center; + align-items: center; + + transition: opacity 0.2s ease; + opacity: .5; + cursor: pointer; + + svg { + filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.2)); + } + &:hover { + opacity: 1; + } + &:active { + opacity: 1; + } +} + .play-btn { + .play-btn { margin-left: 15px; @@ -1107,6 +1191,9 @@ each(@themes, { // border-color: ~'@{color-@{value}-theme_2-background_1}'; // } } + .titleBtn { + color: ~'@{color-@{value}-theme}'; + } .play-btn { color: ~'@{color-@{value}-theme}'; svg { diff --git a/src/renderer/components/material/ListButtons.vue b/src/renderer/components/material/ListButtons.vue index 4e5fd3e4..aa588b26 100644 --- a/src/renderer/components/material/ListButtons.vue +++ b/src/renderer/components/material/ListButtons.vue @@ -1,31 +1,31 @@ diff --git a/src/renderer/components/material/listAddModal.vue b/src/renderer/components/material/listAddModal.vue index 8d62d910..9386f88d 100644 --- a/src/renderer/components/material/listAddModal.vue +++ b/src/renderer/components/material/listAddModal.vue @@ -61,7 +61,7 @@ export default { this.defaultList, this.loveList, ...this.userList, - ].filter(l => l.id != this.excludeListId) + ].filter(l => l.id != this.excludeListId.includes(l.id)) }, spaceNum() { return this.lists.length < 2 ? 0 : (3 - this.lists.length % 3 - 1) diff --git a/src/renderer/components/material/listAddMultipleModal.vue b/src/renderer/components/material/listAddMultipleModal.vue index 7e710234..2c9c370d 100644 --- a/src/renderer/components/material/listAddMultipleModal.vue +++ b/src/renderer/components/material/listAddMultipleModal.vue @@ -62,7 +62,7 @@ export default { this.defaultList, this.loveList, ...this.userList, - ].filter(l => l.id != this.excludeListId) + ].filter(l => l.id != this.excludeListId.includes(l.id)) }, spaceNum() { return this.lists.length < 2 ? 0 : (3 - this.lists.length % 3 - 1) diff --git a/src/renderer/lang/en-us/core/player.json b/src/renderer/lang/en-us/core/player.json index dff70093..d21ff4ad 100644 --- a/src/renderer/lang/en-us/core/player.json +++ b/src/renderer/lang/en-us/core/player.json @@ -17,5 +17,13 @@ "hide_detail": "Hide detail page", "name": "Name: ", "singer": "Artist: ", - "album": "Album: " + "album": "Album: ", + "add_music_to": "Add the current song to...", + "desktop_lyric_on": "Open Desktop Lyrics", + "desktop_lyric_off": "Close Desktop Lyrics", + "play_toggle_mode_list_loop": "List Loop", + "play_toggle_mode_random": "List Random", + "play_toggle_mode_list": "Play in order", + "play_toggle_mode_single_loop": "Single Loop", + "play_toggle_mode_off": "Disable" } diff --git a/src/renderer/lang/zh-cn/core/player.json b/src/renderer/lang/zh-cn/core/player.json index 36936ad5..8a32b56c 100644 --- a/src/renderer/lang/zh-cn/core/player.json +++ b/src/renderer/lang/zh-cn/core/player.json @@ -17,5 +17,13 @@ "hide_detail": "隐藏详情页", "name": "歌曲名:", "singer": "艺术家:", - "album": "专辑名:" + "album": "专辑名:", + "add_music_to": "添加当前歌曲到...", + "desktop_lyric_on": "开启桌面歌词", + "desktop_lyric_off": "关闭桌面歌词", + "play_toggle_mode_list_loop": "列表循环", + "play_toggle_mode_random": "列表随机", + "play_toggle_mode_list": "顺序播放", + "play_toggle_mode_single_loop": "单曲循环", + "play_toggle_mode_off": "禁用" } diff --git a/src/renderer/lang/zh-tw/core/player.json b/src/renderer/lang/zh-tw/core/player.json index 513ea11f..573f766c 100644 --- a/src/renderer/lang/zh-tw/core/player.json +++ b/src/renderer/lang/zh-tw/core/player.json @@ -17,5 +17,13 @@ "hide_detail": "隱藏詳情頁", "name": "歌曲名:", "singer": "藝術家:", - "album": "專輯名:" + "album": "專輯名:", + "add_music_to": "添加當前歌曲到...", + "desktop_lyric_on": "開啟桌面歌詞", + "desktop_lyric_off": "關閉桌面歌詞", + "play_toggle_mode_list_loop": "列表循環", + "play_toggle_mode_random": "列表隨機", + "play_toggle_mode_list": "順序播放", + "play_toggle_mode_single_loop": "單曲循環", + "play_toggle_mode_off": "禁用" } diff --git a/src/renderer/store/mutations.js b/src/renderer/store/mutations.js index 418c7a4e..8e23cb76 100644 --- a/src/renderer/store/mutations.js +++ b/src/renderer/store/mutations.js @@ -49,6 +49,12 @@ export default { state.setting.player.volume = val } }, + setPlayNextMode(state, val) { + state.setting.player.togglePlayMethod = val + }, + setVisibleDesktopLyric(state, val) { + state.setting.desktopLyric.enable = val + }, setMediaDeviceId(state, val) { state.setting.player.mediaDeviceId = val }, diff --git a/src/renderer/utils/music/index.js b/src/renderer/utils/music/index.js index 10c90fda..ae882ab5 100644 --- a/src/renderer/utils/music/index.js +++ b/src/renderer/utils/music/index.js @@ -3,7 +3,7 @@ import kg from './kg' import tx from './tx' import wy from './wy' import mg from './mg' -// import bd from './bd' +import bd from './bd' import xm from './xm' import { supportQuality } from './api-source' @@ -44,7 +44,7 @@ const sources = { tx, wy, mg, - // bd, + bd, xm, } export default { diff --git a/src/renderer/views/Setting.vue b/src/renderer/views/Setting.vue index dc39a734..b28b0829 100644 --- a/src/renderer/views/Setting.vue +++ b/src/renderer/views/Setting.vue @@ -602,6 +602,12 @@ export default { 'setting.player.isMute'(n) { this.current_setting.player.isMute = n }, + 'setting.desktopLyric.enable'(n) { + this.current_setting.desktopLyric.enable = n + }, + 'setting.player.togglePlayMethod'(n) { + this.current_setting.player.togglePlayMethod = n + }, 'current_setting.player.isShowTaskProgess'(n) { if (n) return this.$nextTick(() => {