diff --git a/publish/changeLog.md b/publish/changeLog.md index da0b64debb..eadb1f55f6 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -11,6 +11,7 @@ - 新增数据同步服务端模式已认证设备列表管理,该功能位置:设置-数据同步-服务端模式-已认证设备列表 - 新增“不喜欢歌曲”功能,可以在我的列表或者在线列表内歌曲的右击菜单使用,还可以去“设置-其他”手动编辑不喜欢规则,注:“上一曲”、“下一曲”功能将跳过符合“不喜欢歌曲”规则的歌曲,但你仍可以手动播放这些歌曲 - 新增软件内快捷键“不喜欢该歌曲”设置,全局快捷键“收藏歌曲”、“取消收藏”、“不喜欢该歌曲”设置 +- 新增设置-播放设置-点击相同列表内的歌曲切歌时是否清空已播放列表(随机模式下列表内所有歌曲会重新参与随机)选项,默认关闭 ### 优化 @@ -37,6 +38,7 @@ ### 变更 - 播放模式应该只适用于列表内的歌曲,所以单曲循环模式不应对“稍后播放”的歌曲有效,该行为现在与移动端一致 +- 随机模式下,通过点击与播放列表相同的列表切歌时,将不再清空已播放列表,即已播放的歌曲不再重新参与随机,若想恢复之前的行为可以去设置-播放设置启用清空已播放列表选项 ### 其他 diff --git a/src/common/defaultSetting.ts b/src/common/defaultSetting.ts index 9268590bbb..a841f46ff4 100644 --- a/src/common/defaultSetting.ts +++ b/src/common/defaultSetting.ts @@ -41,6 +41,7 @@ const defaultSetting: LX.AppSetting = { 'player.waitPlayEndStop': true, 'player.waitPlayEndStopTime': '', 'player.autoSkipOnError': true, + 'player.isAutoCleanPlayedList': false, 'player.soundEffect.convolution.fileName': '', 'player.soundEffect.convolution.mainGain': 10, 'player.soundEffect.convolution.sendGain': 0, diff --git a/src/common/types/app_setting.d.ts b/src/common/types/app_setting.d.ts index 437881e417..aa54338f1d 100644 --- a/src/common/types/app_setting.d.ts +++ b/src/common/types/app_setting.d.ts @@ -258,6 +258,11 @@ declare global { */ 'player.autoSkipOnError': boolean + /** + * 点击相同列表内的歌曲切歌时是否清空已播放列表(随机模式下列表内所有歌曲会重新参与随机) + */ + 'player.isAutoCleanPlayedList': boolean + /** * 播放详情页-是否缩放当前播放的歌词行 */ diff --git a/src/lang/en-us.json b/src/lang/en-us.json index 15c836b2b1..f4529501c1 100644 --- a/src/lang/en-us.json +++ b/src/lang/en-us.json @@ -425,14 +425,14 @@ "setting__hot_key_desktop_lyric_toggle_visible": "Turn on/off desktop lyrics", "setting__hot_key_global_title": "Global Shortcut Key", "setting__hot_key_local_title": "Shortcut Keys in Software", + "setting__hot_key_player_music_dislike": "Dislike the song", + "setting__hot_key_player_music_love": "Favorites Song", + "setting__hot_key_player_music_unlove": "Cancel collection", "setting__hot_key_player_next": "Next Song", "setting__hot_key_player_prev": "Previous Song", "setting__hot_key_player_toggle_play": "Play/Pause Control", "setting__hot_key_player_volume_down": "Reduce Volume", "setting__hot_key_player_volume_mute": "Mute Switch", - "setting__hot_key_player_music_love": "Favorites Song", - "setting__hot_key_player_music_unlove": "Cancel collection", - "setting__hot_key_player_music_dislike": "Dislike the song", "setting__hot_key_player_volume_up": "Increase Volume", "setting__hot_key_tip_input": "Please enter a new key", "setting__hot_key_unset_input": "Not Set", @@ -484,6 +484,7 @@ "setting__other_tray_theme_native": "White", "setting__other_tray_theme_origin": "Primary Color", "setting__play": "Play", + "setting__play_auto_clean_played_list": "Whether to clear the existing playlist when clicking the same list as the playlist to switch songs (all songs in the list in random mode will participate in the random again)", "setting__play_auto_skip_on_error": "Automatically switch songs on playback error", "setting__play_detail": "Play details page settings", "setting__play_detail_align": "Lyric Alignment", diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json index 3c773b7b7e..a04b089080 100644 --- a/src/lang/zh-cn.json +++ b/src/lang/zh-cn.json @@ -424,14 +424,14 @@ "setting__hot_key_desktop_lyric_toggle_visible": "开/关桌面歌词", "setting__hot_key_global_title": "全局快捷键", "setting__hot_key_local_title": "软件内快捷键", + "setting__hot_key_player_music_dislike": "不喜欢该歌曲", + "setting__hot_key_player_music_love": "收藏歌曲", + "setting__hot_key_player_music_unlove": "取消收藏", "setting__hot_key_player_next": "下一首歌曲", "setting__hot_key_player_prev": "上一首歌曲", "setting__hot_key_player_toggle_play": "播放/暂停控制", "setting__hot_key_player_volume_down": "减少音量", "setting__hot_key_player_volume_mute": "静音切换", - "setting__hot_key_player_music_love": "收藏歌曲", - "setting__hot_key_player_music_unlove": "取消收藏", - "setting__hot_key_player_music_dislike": "不喜欢该歌曲", "setting__hot_key_player_volume_up": "增加音量", "setting__hot_key_tip_input": "请输入新的按键", "setting__hot_key_unset_input": "未设置", @@ -483,6 +483,7 @@ "setting__other_tray_theme_native": "白色", "setting__other_tray_theme_origin": "原色", "setting__play": "播放设置", + "setting__play_auto_clean_played_list": "点击与播放列表相同的列表切歌时是否清空已播放列表(随机模式下列表内所有歌曲会重新参与随机)", "setting__play_auto_skip_on_error": "播放错误时自动切换歌曲", "setting__play_detail": "播放详情页设置", "setting__play_detail_align": "歌词对齐方式", diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json index 02c11f9734..d89a83ed10 100644 --- a/src/lang/zh-tw.json +++ b/src/lang/zh-tw.json @@ -425,14 +425,14 @@ "setting__hot_key_desktop_lyric_toggle_visible": "開/關桌面歌詞", "setting__hot_key_global_title": "全局快捷鍵", "setting__hot_key_local_title": "軟件內快捷鍵", + "setting__hot_key_player_music_dislike": "不喜歡該歌曲", + "setting__hot_key_player_music_love": "收藏歌曲", + "setting__hot_key_player_music_unlove": "取消收藏", "setting__hot_key_player_next": "下一首歌曲", "setting__hot_key_player_prev": "上一首歌曲", "setting__hot_key_player_toggle_play": "播放/暫停控制​​", "setting__hot_key_player_volume_down": "減少音量", "setting__hot_key_player_volume_mute": "靜音切換", - "setting__hot_key_player_music_love": "收藏歌曲", - "setting__hot_key_player_music_unlove": "取消收藏", - "setting__hot_key_player_music_dislike": "不喜歡該歌曲", "setting__hot_key_player_volume_up": "增加音量", "setting__hot_key_tip_input": "請輸入新的按鍵", "setting__hot_key_unset_input": "未設置", @@ -484,6 +484,7 @@ "setting__other_tray_theme_native": "白色", "setting__other_tray_theme_origin": "原色", "setting__play": "播放設置", + "setting__play_auto_clean_played_list": "點擊與播放列表相同的列表切歌時是否清空已播放列表(隨機模式下列表內所有歌曲會重新參與隨機)", "setting__play_auto_skip_on_error": "播放錯誤時自動切換歌曲", "setting__play_detail": "播放詳情頁設置", "setting__play_detail_align": "歌詞對齊方式", diff --git a/src/renderer/core/player/action.ts b/src/renderer/core/player/action.ts index 7a01874cc0..fbf666b7c1 100644 --- a/src/renderer/core/player/action.ts +++ b/src/renderer/core/player/action.ts @@ -222,10 +222,11 @@ const handlePlay = () => { * @param index 播放的歌曲位置 */ export const playList = (listId: string, index: number) => { + const prevListId = playInfo.playerListId setPlayListId(listId) pause() setPlayMusicInfo(listId, getList(listId)[index]) - clearPlayedList() + if (appSetting['player.isAutoCleanPlayedList'] || prevListId != listId) clearPlayedList() clearTempPlayeList() handlePlay() } diff --git a/src/renderer/views/Setting/components/SettingPlay.vue b/src/renderer/views/Setting/components/SettingPlay.vue index cebbead061..048d2dfede 100644 --- a/src/renderer/views/Setting/components/SettingPlay.vue +++ b/src/renderer/views/Setting/components/SettingPlay.vue @@ -5,6 +5,8 @@ dd base-checkbox(id="setting_player_startup_auto_play" :model-value="appSetting['player.startupAutoPlay']" :label="$t('setting__play_startup_auto_play')" @update:model-value="updateSetting({'player.startupAutoPlay': $event})") .gap-top base-checkbox(id="setting_player_save_play_time" :model-value="appSetting['player.isSavePlayTime']" :label="$t('setting__play_save_play_time')" @update:model-value="updateSetting({'player.isSavePlayTime': $event})") + .gap-top + base-checkbox(id="setting_player_auto_clean_played_list" :model-value="appSetting['player.isAutoCleanPlayedList']" :label="$t('setting__play_auto_clean_played_list')" @update:model-value="updateSetting({'player.isAutoCleanPlayedList': $event})") .gap-top base-checkbox(id="setting_player_lyric_transition" :model-value="appSetting['player.isShowLyricTranslation']" :label="$t('setting__play_lyric_transition')" @update:model-value="updateSetting({'player.isShowLyricTranslation': $event})") .gap-top