From 6de84d3b9b76c0783fbce52dc7c91ce534e8fa84 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Thu, 7 Apr 2022 09:24:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=AD=8C=E8=AF=8D=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E6=97=B6=E9=97=B4=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/PlayDetail/LyricPlayer.vue | 7 +++--- src/renderer/utils/compositions/useLyric.js | 22 ++++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/renderer/components/core/PlayDetail/LyricPlayer.vue b/src/renderer/components/core/PlayDetail/LyricPlayer.vue index 22e9b665..9a6870e3 100644 --- a/src/renderer/components/core/PlayDetail/LyricPlayer.vue +++ b/src/renderer/components/core/PlayDetail/LyricPlayer.vue @@ -52,6 +52,9 @@ export default { }, setup() { const setting = useRefGetter('setting') + const isZoomActiveLrc = computed(() => setting.value.playDetail.isZoomActiveLrc) + const isShowLyricProgressSetting = computed(() => setting.value.playDetail.isShowLyricProgressSetting) + const { dom_lyric, dom_lyric_text, @@ -64,7 +67,7 @@ export default { handleSkipPlay, handleSkipMouseEnter, handleSkipMouseLeave, - } = useLyric({ isPlay, lyric }) + } = useLyric({ isPlay, lyric, isShowLyricProgressSetting }) const lyricMenuVisible = ref(false) const lyricMenuXY = reactive({ @@ -111,8 +114,6 @@ export default { '--playDetail-lrc-font-size': (isShowPlayComment.value ? size * 0.82 : size) + 'rem', } }) - const isZoomActiveLrc = computed(() => setting.value.playDetail.isZoomActiveLrc) - const isShowLyricProgressSetting = computed(() => setting.value.playDetail.isShowLyricProgressSetting) onMounted(() => { window.eventHub.on(eventPlayerNames.updateLyric, updateMusicInfo) diff --git a/src/renderer/utils/compositions/useLyric.js b/src/renderer/utils/compositions/useLyric.js index e304eb1b..b9819d84 100644 --- a/src/renderer/utils/compositions/useLyric.js +++ b/src/renderer/utils/compositions/useLyric.js @@ -2,7 +2,7 @@ import { ref, onMounted, onBeforeUnmount, watch, nextTick } from '@renderer/util import { scrollTo, throttle, formatPlayTime2 } from '@renderer/utils' import { player as eventPlayerNames } from '@renderer/event/names' -export default ({ isPlay, lyric }) => { +export default ({ isPlay, lyric, isShowLyricProgressSetting }) => { const dom_lyric = ref(null) const dom_lyric_text = ref(null) const dom_skip_line = ref(null) @@ -40,13 +40,11 @@ export default ({ isPlay, lyric }) => { startLyricScrollTimeout() } - const setTime = throttle(() => { - if (point.x == null) { - if (!dom_skip_line.value) return - const rect = dom_skip_line.value.getBoundingClientRect() - point.x = rect.x - point.y = rect.y - } + const throttleSetTime = throttle(() => { + if (!dom_skip_line.value) return + const rect = dom_skip_line.value.getBoundingClientRect() + point.x = rect.x + point.y = rect.y let dom = document.elementFromPoint(point.x, point.y) if (dom_pre_line === dom) return if (dom.tagName == 'SPAN') { @@ -70,6 +68,9 @@ export default ({ isPlay, lyric }) => { } dom_pre_line = dom }) + const setTime = () => { + if (isShowLyricProgressSetting.value) throttleSetTime() + } const handleScrollLrc = (duration = 300) => { if (!dom_lines?.length || !dom_lyric.value) return @@ -184,14 +185,15 @@ export default ({ isPlay, lyric }) => { watch(() => lyric.line, scrollLine) onMounted(() => { + document.addEventListener('mousemove', handleMouseMsMove) + document.addEventListener('mouseup', handleMouseMsUp) + initLrc(lyric.lines, null) nextTick(() => { scrollLine(lyric.line) }) }) - document.addEventListener('mousemove', handleMouseMsMove) - document.addEventListener('mouseup', handleMouseMsUp) onBeforeUnmount(() => { document.removeEventListener('mousemove', handleMouseMsMove) document.removeEventListener('mouseup', handleMouseMsUp)