forked from miao-moe/QZMusic_PC
29 lines
1.3 KiB
TypeScript
29 lines
1.3 KiB
TypeScript
import { contextBridge, ipcRenderer } from 'electron'
|
|
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// 窗口控制
|
|
minimizeWindow: () => ipcRenderer.send('window-minimize'),
|
|
maximizeWindow: () => ipcRenderer.send('window-maximize'),
|
|
closeWindow: () => ipcRenderer.send('window-close'),
|
|
isMaximized: () => ipcRenderer.invoke('window-is-maximized'),
|
|
|
|
// MPV 控制 (Renderer -> Main)
|
|
mpvLoad: (url: string,autoPlay: boolean = true) => ipcRenderer.send('mpv-load', url, autoPlay),
|
|
mpvPlay: () => ipcRenderer.send('mpv-play'),
|
|
mpvPause: () => ipcRenderer.send('mpv-pause'),
|
|
mpvSeek: (time: number) => ipcRenderer.send('mpv-seek', time),
|
|
mpvSetVolume: (volume: number) => ipcRenderer.send('mpv-volume', volume),
|
|
|
|
// MPV 事件 (Main -> Renderer)
|
|
onMpvTimeUpdate: (callback: (time: number) => void) =>
|
|
ipcRenderer.on('mpv-time-update', (_, time) => callback(time)),
|
|
|
|
onMpvDuration: (callback: (duration: number) => void) =>
|
|
ipcRenderer.on('mpv-duration', (_, duration) => callback(duration)),
|
|
|
|
onMpvPlayState: (callback: (isPlaying: boolean) => void) =>
|
|
ipcRenderer.on('mpv-play-state', (_, isPlaying) => callback(isPlaying)),
|
|
|
|
onMpvEnded: (callback: () => void) =>
|
|
ipcRenderer.on('mpv-ended', () => callback()),
|
|
}) |