新增任务栏缩略图工具栏控制按钮
This commit is contained in:
@@ -40,7 +40,7 @@ export default () => {
|
||||
isProd,
|
||||
isLinux,
|
||||
})
|
||||
usePlayer({ setting })
|
||||
const initPlayer = usePlayer({ setting })
|
||||
const handleEnvParams = useHandleEnvParams()
|
||||
const initData = useDataInit({
|
||||
setting,
|
||||
@@ -60,6 +60,7 @@ export default () => {
|
||||
|
||||
// 初始化我的列表、下载列表等数据
|
||||
initData().then(() => {
|
||||
initPlayer()
|
||||
handleEnvParams(envParams) // 处理传入的启动参数
|
||||
initDeepLink(envParams)
|
||||
})
|
||||
|
||||
@@ -4,6 +4,7 @@ import {
|
||||
import useMediaDevice from './useMediaDevice'
|
||||
import usePlayerEvent from './usePlayerEvent'
|
||||
import usePlayer from './usePlayer'
|
||||
import useTaskbar from './useTaskbar'
|
||||
import { init as initPlayTimeoutStop } from '@renderer/utils/timeoutStop'
|
||||
|
||||
export default ({ setting }) => {
|
||||
@@ -12,7 +13,12 @@ export default ({ setting }) => {
|
||||
usePlayerEvent()
|
||||
useMediaDevice({ setting }) // 初始化音频驱动输出设置
|
||||
usePlayer({ setting })
|
||||
const initTaskbar = useTaskbar()
|
||||
|
||||
initPlayTimeoutStop()
|
||||
|
||||
return () => {
|
||||
initTaskbar()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -195,11 +195,9 @@ export default ({ setting }) => {
|
||||
|
||||
const setPlayStatus = () => {
|
||||
setPlay(true)
|
||||
setTitle(`${musicInfo.name} - ${musicInfo.singer}`)
|
||||
}
|
||||
const setPauseStatus = () => {
|
||||
setPlay(false)
|
||||
setTitle()
|
||||
if (global.isPlayedStop) handlePause()
|
||||
}
|
||||
const setStopStatus = () => {
|
||||
@@ -282,6 +280,7 @@ export default ({ setting }) => {
|
||||
name: musicInfo.name,
|
||||
album: musicInfo.albumName,
|
||||
})
|
||||
setTitle(`${musicInfo.name} - ${musicInfo.singer}`)
|
||||
}
|
||||
|
||||
const handelStop = () => {
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
import { onBeforeUnmount, useCommit } from '@renderer/utils/vueTools'
|
||||
import { player as eventPlayerNames, taskbar as eventTaskbarNames } from '@renderer/event/names'
|
||||
import { onTaskbarThumbarClick, setTaskbarThumbnailClip, setTaskbarThumbarButtons } from '@renderer/utils/tools'
|
||||
// import store from '@renderer/store'
|
||||
|
||||
import { loveList, getList } from '@renderer/core/share/list'
|
||||
import { playMusicInfo } from '@renderer/core/share/player'
|
||||
|
||||
export default () => {
|
||||
const listAdd = useCommit('list', 'listAdd')
|
||||
const listRemove = useCommit('list', 'listRemove')
|
||||
// const setVisibleDesktopLyric = useCommit('setVisibleDesktopLyric')
|
||||
// const setLockDesktopLyric = useCommit('setLockDesktopLyric')
|
||||
|
||||
const buttons = {
|
||||
empty: false,
|
||||
collect: false,
|
||||
play: false,
|
||||
prev: true,
|
||||
next: true,
|
||||
lrc: false,
|
||||
lockLrc: false,
|
||||
}
|
||||
const setButtons = () => {
|
||||
setTaskbarThumbarButtons(buttons)
|
||||
}
|
||||
const updateCollectStatus = () => {
|
||||
let status = getList(loveList.id).some(musicInfo => playMusicInfo.musicInfo.songmid == musicInfo.songmid)
|
||||
if (buttons.collect == status) return false
|
||||
buttons.collect = status
|
||||
return true
|
||||
}
|
||||
|
||||
const handlePlay = () => {
|
||||
if (buttons.empty) buttons.empty = false
|
||||
buttons.play = true
|
||||
setButtons()
|
||||
}
|
||||
const handlePause = () => {
|
||||
if (buttons.empty) buttons.empty = false
|
||||
buttons.play = false
|
||||
setButtons()
|
||||
}
|
||||
const handleStop = () => {
|
||||
if (playMusicInfo.musicInfo != null) return
|
||||
buttons.empty = true
|
||||
setButtons()
|
||||
}
|
||||
const handleSetPlayInfo = () => {
|
||||
if (!updateCollectStatus()) return
|
||||
setButtons()
|
||||
}
|
||||
const handleSetTaskbarThumbnailClip = (clip) => {
|
||||
setTaskbarThumbnailClip(clip)
|
||||
}
|
||||
// const updateSetting = () => {
|
||||
// const setting = store.getters.setting
|
||||
// buttons.lrc = setting.desktopLyric.enable
|
||||
// buttons.lockLrc = setting.desktopLyric.isLock
|
||||
// setButtons()
|
||||
// }
|
||||
const rTaskbarThumbarClick = onTaskbarThumbarClick((event, action) => {
|
||||
switch (action) {
|
||||
case 'play':
|
||||
window.eventHub.emit(eventPlayerNames.setPlay)
|
||||
break
|
||||
case 'pause':
|
||||
window.eventHub.emit(eventPlayerNames.setPause)
|
||||
break
|
||||
case 'prev':
|
||||
window.eventHub.emit(eventPlayerNames.setPlayPrev)
|
||||
break
|
||||
case 'next':
|
||||
window.eventHub.emit(eventPlayerNames.setPlayNext)
|
||||
break
|
||||
case 'collect':
|
||||
if (!playMusicInfo.musicInfo) return
|
||||
listAdd({ id: loveList.id, musicInfo: playMusicInfo.musicInfo })
|
||||
if (updateCollectStatus()) setButtons()
|
||||
break
|
||||
case 'unCollect':
|
||||
if (!playMusicInfo.musicInfo) return
|
||||
listRemove({ listId: loveList.id, id: playMusicInfo.musicInfo.songmid })
|
||||
if (updateCollectStatus()) setButtons()
|
||||
break
|
||||
// case 'lrc':
|
||||
// setVisibleDesktopLyric(true)
|
||||
// updateSetting()
|
||||
// break
|
||||
// case 'unLrc':
|
||||
// setVisibleDesktopLyric(false)
|
||||
// updateSetting()
|
||||
// break
|
||||
// case 'lockLrc':
|
||||
// setLockDesktopLyric(true)
|
||||
// updateSetting()
|
||||
// break
|
||||
// case 'unlockLrc':
|
||||
// setLockDesktopLyric(false)
|
||||
// updateSetting()
|
||||
// break
|
||||
}
|
||||
})
|
||||
window.eventHub.on(eventPlayerNames.play, handlePlay)
|
||||
window.eventHub.on(eventPlayerNames.pause, handlePause)
|
||||
window.eventHub.on(eventPlayerNames.stop, handleStop)
|
||||
window.eventHub.on(eventPlayerNames.setPlayInfo, handleSetPlayInfo)
|
||||
window.eventHub.on(eventTaskbarNames.setTaskbarThumbnailClip, handleSetTaskbarThumbnailClip)
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
rTaskbarThumbarClick()
|
||||
window.eventHub.off(eventPlayerNames.play, handlePlay)
|
||||
window.eventHub.off(eventPlayerNames.pause, handlePause)
|
||||
window.eventHub.off(eventPlayerNames.stop, handleStop)
|
||||
window.eventHub.off(eventPlayerNames.setPlayInfo, handleSetPlayInfo)
|
||||
window.eventHub.off(eventTaskbarNames.setTaskbarThumbnailClip, handleSetTaskbarThumbnailClip)
|
||||
})
|
||||
|
||||
return () => {
|
||||
// const setting = store.getters.setting
|
||||
// buttons.lrc = setting.desktopLyric.enable
|
||||
// buttons.lockLrc = setting.desktopLyric.isLock
|
||||
setButtons()
|
||||
}
|
||||
}
|
||||
@@ -27,9 +27,9 @@ const names = {
|
||||
|
||||
playMusic: 'playMusic',
|
||||
|
||||
setPlayInfo: 'setPlayInfo',
|
||||
updatePic: 'updatePic',
|
||||
updateLyric: 'updateLyric',
|
||||
setPlayInfo: 'setPlayInfo', // 设置播放信息
|
||||
updatePic: 'updatePic', // 更新图片事件
|
||||
updateLyric: 'updateLyric', // 更新歌词事件
|
||||
|
||||
activeTransition: 'activeTransition', // 激活进度条动画事件
|
||||
playedStop: 'playedStop', // 定时停止事件
|
||||
@@ -66,6 +66,9 @@ const names = {
|
||||
send_sync_list: 'send_sync_list',
|
||||
handle_sync_list: 'handle_sync_list',
|
||||
},
|
||||
taskbar: {
|
||||
setTaskbarThumbnailClip: 'setTaskbarThumbnailClip',
|
||||
},
|
||||
}
|
||||
|
||||
for (const item of Object.keys(names)) {
|
||||
@@ -80,3 +83,4 @@ export const player = names.player
|
||||
export const list = names.list
|
||||
export const download = names.download
|
||||
export const sync = names.sync
|
||||
export const taskbar = names.taskbar
|
||||
|
||||
@@ -310,3 +310,16 @@ export const hotKeySetConfig = (config) => {
|
||||
export const hotKeyGetStatus = () => {
|
||||
return rendererInvoke(NAMES.hotKey.status)
|
||||
}
|
||||
|
||||
export const onTaskbarThumbarClick = callback => {
|
||||
rendererOn(NAMES.mainWindow.taskbar_on_thumbar_button_click, callback)
|
||||
return () => {
|
||||
rendererOff(callback)
|
||||
}
|
||||
}
|
||||
export const setTaskbarThumbnailClip = (clip) => {
|
||||
return rendererInvoke(NAMES.mainWindow.taskbar_set_thumbnail_clip, clip)
|
||||
}
|
||||
export const setTaskbarThumbarButtons = (buttons) => {
|
||||
rendererSend(NAMES.mainWindow.taskbar_set_thumbar_buttons, buttons)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user