feat: 实现功能&播放器内核&实现页面

- AMLL MeshGradient背景
- 全屏播放页初始化
- 纯C音频播放器
  - FFmpeg解码
  - 编译FFmpeg静态库
  - wasapi shared
  - IPC通信
  - FFTW实时频谱计算
  - 低频响度实时计算
  - PCM缓存
  - 数据缓存&解码缓存
 - 弃用mpv,改用qzplayer
This commit is contained in:
lqtmcstudio
2026-02-05 18:52:58 +08:00
parent 8eab16cbf5
commit 6a94931cbd
20 changed files with 2791 additions and 373 deletions

View File

@@ -6,16 +6,16 @@ electron.contextBridge.exposeInMainWorld("electronAPI", {
maximizeWindow: () => electron.ipcRenderer.send("window-maximize"),
closeWindow: () => electron.ipcRenderer.send("window-close"),
isMaximized: () => electron.ipcRenderer.invoke("window-is-maximized"),
// MPV Control
mpv: {
load: (url) => electron.ipcRenderer.invoke("mpv-load", url),
play: () => electron.ipcRenderer.invoke("mpv-play"),
pause: () => electron.ipcRenderer.invoke("mpv-pause"),
togglePause: () => electron.ipcRenderer.invoke("mpv-toggle-pause"),
stop: () => electron.ipcRenderer.invoke("mpv-stop"),
setVolume: (vol) => electron.ipcRenderer.invoke("mpv-set-volume", vol),
seek: (time) => electron.ipcRenderer.invoke("mpv-seek", time),
onEvent: (callback) => electron.ipcRenderer.on("mpv-event", callback)
// qzplayer Control
qzplayer: {
load: (url) => electron.ipcRenderer.invoke("qzplayer-load", url),
play: () => electron.ipcRenderer.invoke("qzplayer-play"),
pause: () => electron.ipcRenderer.invoke("qzplayer-pause"),
togglePause: () => electron.ipcRenderer.invoke("qzplayer-toggle-pause"),
stop: () => electron.ipcRenderer.invoke("qzplayer-stop"),
setVolume: (vol) => electron.ipcRenderer.invoke("qzplayer-set-volume", vol),
seek: (time) => electron.ipcRenderer.invoke("qzplayer-seek", time),
onEvent: (callback) => electron.ipcRenderer.on("qzplayer-event", callback)
},
// Plugin System
plugin: {