lx-music-desktop/src/renderer/core/useApp/usePlayer/useLyric.ts
2023-02-08 18:27:35 +08:00

48 lines
1.4 KiB
TypeScript

import { onBeforeUnmount, watch } from '@common/utils/vueTools'
import { debounce } from '@common/utils/common'
// import { setDesktopLyricInfo, onGetDesktopLyricInfo } from '@renderer/utils/ipc'
// import { musicInfo } from '@renderer/store/player/state'
import {
pause,
play,
setLyric,
stop,
init,
sendInfo,
setPlaybackRate,
} from '@renderer/core/lyric'
import { appSetting } from '@renderer/store/setting'
const handleApplyPlaybackRate = debounce(setPlaybackRate, 300)
export default () => {
init()
const setPlayInfo = () => {
stop()
sendInfo()
}
watch(() => appSetting['player.isShowLyricTranslation'], setLyric)
watch(() => appSetting['player.isShowLyricRoma'], setLyric)
watch(() => appSetting['player.isPlayLxlrc'], setLyric)
window.app_event.on('play', play)
window.app_event.on('pause', pause)
window.app_event.on('stop', stop)
window.app_event.on('error', pause)
window.app_event.on('musicToggled', setPlayInfo)
window.app_event.on('lyricUpdated', setLyric)
window.app_event.on('setPlaybackRate', handleApplyPlaybackRate)
onBeforeUnmount(() => {
window.app_event.off('play', play)
window.app_event.off('pause', pause)
window.app_event.off('stop', stop)
window.app_event.off('error', pause)
window.app_event.off('musicToggled', setPlayInfo)
window.app_event.off('lyricUpdated', setLyric)
window.app_event.off('setPlaybackRate', handleApplyPlaybackRate)
})
}