Skip to content

🖥️ 窗口与交互管理

桌面歌词悬浮窗、Mini 播放器、主窗口控制、系统托盘状态同步。


桌面歌词(ctx.desktopLyric)

控制桌面歌词悬浮窗。

API返回说明
getSnapshot()Promise<Snapshot>获取当前歌词状态
show() / hide()Promise<Snapshot>显示 / 隐藏
toggleLock()Promise<Snapshot>切换锁定状态
updateSettings(s)Promise<Snapshot>更新歌词设置
onSnapshot(fn)取消函数订阅状态变化
command(cmd)void发送命令
setIgnoreMouseEvents(bool)void鼠标穿透开关
js
ctx.desktopLyric.show();
ctx.desktopLyric.onSnapshot((snap) => {
  console.log("歌词可见:", snap.visible, "锁定:", snap.locked);
});

Mini 播放器(ctx.miniPlayer)

控制迷你播放器窗口。

API返回说明
getSnapshot()Promise<Snapshot>获取当前状态
show() / hide() / toggle()Promise<Snapshot>显示 / 隐藏 / 切换
setExpanded(bool)Promise<Snapshot>展开 / 收缩
setAlwaysOnTop(bool)Promise<Snapshot>置顶开关
getBounds()Promise<{x,y,w,h}>窗口位置和尺寸
move(x, y)void移动窗口
applyExpandBounds()Promise<Snapshot>应用展开尺寸
onSnapshot(fn)取消函数订阅状态
onCommand(fn)取消函数命令监听
notifyLyricVisibility(bool)void通知歌词可见性
onLyricVisibility(fn)取消函数歌词可见性变化
command(cmd)void发送命令
js
ctx.miniPlayer.show();
ctx.miniPlayer.setAlwaysOnTop(true);
ctx.miniPlayer.setExpanded(true);

窗口控制(ctx.windowControl)

操作当前窗口的窗口状态。

js
ctx.windowControl("minimize");   // 最小化
ctx.windowControl("maximize");   // 最大化
ctx.windowControl("close");      // 关闭
ctx.windowControl("fullscreen"); // 全屏

仅在主窗口和 Mini 播放器中可用。


系统托盘(ctx.tray)

API说明
syncPlayback(state)同步播放状态到托盘({ isPlaying, playMode, volume }
onSetPlayMode(fn)监听托盘播放模式切换

📂 相关文档