新增播放详情页歌词右键菜单,新增歌词偏移设置
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import { onBeforeUnmount, watch, markRawList } from '@renderer/utils/vueTools'
|
||||
import Lyric from '@renderer/utils/lyric-font-player'
|
||||
import { getCurrentTime } from '@renderer/plugins/player'
|
||||
import { getCurrentTime as getPlayerCurrentTime } from '@renderer/plugins/player'
|
||||
import { setDesktopLyricInfo, onGetDesktopLyricInfo } from '@renderer/utils/tools'
|
||||
import { player } from '@renderer/event/names'
|
||||
import { lyric, setText, setLines } from '@renderer/core/share/lyric'
|
||||
import { player as eventPlayerNames } from '@renderer/event/names'
|
||||
import { lyric, setText, setLines, setOffset } from '@renderer/core/share/lyric'
|
||||
import { musicInfo, setStatusText, isPlay, playMusicInfo } from '@renderer/core/share/player'
|
||||
|
||||
export default ({ setting }) => {
|
||||
@@ -12,19 +12,24 @@ export default ({ setting }) => {
|
||||
fontClassName: 'font',
|
||||
shadowContent: false,
|
||||
activeLineClassName: 'active',
|
||||
onPlay: (line, text) => {
|
||||
onPlay(line, text) {
|
||||
setText(text, line)
|
||||
setStatusText(text)
|
||||
// console.log(line, text)
|
||||
},
|
||||
onSetLyric: lines => { // listening lyrics seting event
|
||||
onSetLyric(lines) { // listening lyrics seting event
|
||||
// console.log(lines) // lines is array of all lyric text
|
||||
setLines(markRawList([...lines]))
|
||||
setText(lines[0] ?? '', 0)
|
||||
setOffset(0) // 重置临时延迟
|
||||
},
|
||||
// offset: 80,
|
||||
})
|
||||
|
||||
const getCurrentTime = () => {
|
||||
return getPlayerCurrentTime() * 1000 + lyric.offset
|
||||
}
|
||||
|
||||
|
||||
const setPlayInfo = ({ musicInfo }) => {
|
||||
setDesktopLyricInfo('music_info', {
|
||||
@@ -45,7 +50,18 @@ export default ({ setting }) => {
|
||||
|
||||
if (isPlay.value && (musicInfo.url || playMusicInfo.listId == 'download')) {
|
||||
setTimeout(() => {
|
||||
const time = getCurrentTime() * 1000
|
||||
const time = getCurrentTime()
|
||||
setDesktopLyricInfo('play', time)
|
||||
lrc.play(time)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const setLyricOffset = offset => {
|
||||
setOffset(offset)
|
||||
if (isPlay.value && (musicInfo.url || playMusicInfo.listId == 'download')) {
|
||||
setTimeout(() => {
|
||||
const time = getCurrentTime()
|
||||
setDesktopLyricInfo('play', time)
|
||||
lrc.play(time)
|
||||
})
|
||||
@@ -54,7 +70,7 @@ export default ({ setting }) => {
|
||||
|
||||
const handlePlay = () => {
|
||||
if (!musicInfo.lrc) return
|
||||
const currentTime = getCurrentTime() * 1000
|
||||
const currentTime = getCurrentTime()
|
||||
lrc.play(currentTime)
|
||||
setDesktopLyricInfo('play', currentTime)
|
||||
}
|
||||
@@ -85,14 +101,14 @@ export default ({ setting }) => {
|
||||
lxlrc: musicInfo.lxlrc,
|
||||
isPlay: isPlay.value,
|
||||
line: lyric.line,
|
||||
played_time: getCurrentTime() * 1000,
|
||||
played_time: getCurrentTime(),
|
||||
}, info)
|
||||
break
|
||||
case 'status':
|
||||
setDesktopLyricInfo('status', {
|
||||
isPlay: isPlay.value,
|
||||
line: lyric.line,
|
||||
played_time: getCurrentTime() * 1000,
|
||||
played_time: getCurrentTime(),
|
||||
}, info)
|
||||
break
|
||||
|
||||
@@ -102,20 +118,22 @@ export default ({ setting }) => {
|
||||
})
|
||||
|
||||
|
||||
window.eventHub.on(player.play, handlePlay)
|
||||
window.eventHub.on(player.pause, handlePause)
|
||||
window.eventHub.on(player.stop, handleStop)
|
||||
window.eventHub.on(player.error, handlePause)
|
||||
window.eventHub.on(player.setPlayInfo, setPlayInfo)
|
||||
window.eventHub.on(player.updateLyric, setLyric)
|
||||
window.eventHub.on(eventPlayerNames.play, handlePlay)
|
||||
window.eventHub.on(eventPlayerNames.pause, handlePause)
|
||||
window.eventHub.on(eventPlayerNames.stop, handleStop)
|
||||
window.eventHub.on(eventPlayerNames.error, handlePause)
|
||||
window.eventHub.on(eventPlayerNames.setPlayInfo, setPlayInfo)
|
||||
window.eventHub.on(eventPlayerNames.updateLyric, setLyric)
|
||||
window.eventHub.on(eventPlayerNames.updateLyricOffset, setLyricOffset)
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
rGetDesktopLyricInfo()
|
||||
window.eventHub.off(player.play, handlePlay)
|
||||
window.eventHub.off(player.pause, handlePause)
|
||||
window.eventHub.off(player.stop, handleStop)
|
||||
window.eventHub.off(player.error, handlePause)
|
||||
window.eventHub.off(player.setPlayInfo, setPlayInfo)
|
||||
window.eventHub.off(player.updateLyric, setLyric)
|
||||
window.eventHub.off(eventPlayerNames.play, handlePlay)
|
||||
window.eventHub.off(eventPlayerNames.pause, handlePause)
|
||||
window.eventHub.off(eventPlayerNames.stop, handleStop)
|
||||
window.eventHub.off(eventPlayerNames.error, handlePause)
|
||||
window.eventHub.off(eventPlayerNames.setPlayInfo, setPlayInfo)
|
||||
window.eventHub.off(eventPlayerNames.updateLyric, setLyric)
|
||||
window.eventHub.off(eventPlayerNames.updateLyricOffset, setLyricOffset)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user