Files
QZMusic_PC/dist-electron/preload.mjs
2026-01-21 15:39:22 +08:00

21 lines
1.2 KiB
JavaScript

"use strict";
const electron = require("electron");
electron.contextBridge.exposeInMainWorld("electronAPI", {
// 窗口控制
minimizeWindow: () => electron.ipcRenderer.send("window-minimize"),
maximizeWindow: () => electron.ipcRenderer.send("window-maximize"),
closeWindow: () => electron.ipcRenderer.send("window-close"),
isMaximized: () => electron.ipcRenderer.invoke("window-is-maximized"),
// MPV 控制 (Renderer -> Main)
mpvLoad: (url, autoPlay = true) => electron.ipcRenderer.send("mpv-load", url, autoPlay),
mpvPlay: () => electron.ipcRenderer.send("mpv-play"),
mpvPause: () => electron.ipcRenderer.send("mpv-pause"),
mpvSeek: (time) => electron.ipcRenderer.send("mpv-seek", time),
mpvSetVolume: (volume) => electron.ipcRenderer.send("mpv-volume", volume),
// MPV 事件 (Main -> Renderer)
onMpvTimeUpdate: (callback) => electron.ipcRenderer.on("mpv-time-update", (_, time) => callback(time)),
onMpvDuration: (callback) => electron.ipcRenderer.on("mpv-duration", (_, duration) => callback(duration)),
onMpvPlayState: (callback) => electron.ipcRenderer.on("mpv-play-state", (_, isPlaying) => callback(isPlaying)),
onMpvEnded: (callback) => electron.ipcRenderer.on("mpv-ended", () => callback())
});