Skip to content

事件系统

所有事件同时派发为 fb2k:* DOM 事件(CustomEvent)。

播放事件

事件触发时机数据
playback:trackChanged曲目切换
playback:stateChanged播放状态变化{state, position, duration} (state: "playing"/"paused"/"stopped")
playback:paused播放/暂停切换
playback:stopped播放停止{reason} (字符串: "user"/"eof"/"starting_another"/"shutting_down")
playback:seeked播放位置跳转
playback:volumeChanged音量变化
playback:time播放时间更新(~1秒/次,整数秒)
playback:timeHighRes高精度时间更新(~100ms,小数秒,C++ 定时器轮询真实位置)
playback:starting播放即将开始{command, paused} (command: "play"/"next"/"previous"/"random")
playback:dynamicInfo动态信息变化
playback:dynamicInfoTrack动态曲目信息变化
playback:edited当前曲目元数据被编辑
playback:orderChanged播放顺序变化
playback:queueChanged播放队列变化{origin} ("user_added" / "user_removed" / "playback_advance")
playback:itemPlayed曲目播放完成{title, artist, album, duration, path, absolutePath, ...} (完整 track info)
playback:stopAfterCurrentChanged"当前曲目后停止"状态变化
playback:followCursorChanged“播放跟随光标”变化
playback:cursorFollowChanged“光标跟随播放”变化

播放列表事件

事件触发时机数据
playlist:activated活动播放列表切换
playlist:created播放列表创建
playlist:removed播放列表删除
playlist:renamed播放列表重命名
playlist:reordered播放列表顺序变化
playlist:lockChanged播放列表锁定状态变化
playlist:defaultFormatChanged默认格式变化-
playlist:itemsAdded曲目添加
playlist:itemsRemoved曲目移除
playlist:itemsReordered曲目重新排序
playlist:itemsReplaced曲目替换
playlist:selectionChanged播放列表选中项变化
playlist:focusChanged焦点曲目变化
playlist:addComplete异步添加完成(广播到所有窗口)

媒体库事件

事件触发时机数据
library:itemsAdded媒体库新增项目
library:itemsRemoved媒体库移除项目
library:itemsModified媒体库项目修改
library:initialized媒体库初始化完成

元数据事件

事件触发时机数据
metadb:changed评分/标签/统计变化

选择事件

事件触发时机数据
selection:changed全局选择变化 (50ms 节流)

音频事件

事件触发时机数据
audio:spectrum频谱数据更新(需订阅)
audio:dspPresetChangedDSP 预设变化-
audio:outputDeviceChanged输出设备变化-
audio:replaygainModeChangedReplayGain 模式变化
audio:fullWaveformReady完整波形生成完成
audio:fullWaveformFailed完整波形生成失败

窗口事件

事件触发时机数据
window:alwaysOnTopChanged置顶状态变化
window:stateChanged窗口状态变化规范字段 {isMaximized, isMinimized}(运行时暂兼容 maximized / minimized)
window:popupOpened弹出窗口打开
window:popupClosed弹出窗口关闭
window:beforeClose窗口关闭前确认
window:message跨窗口消息接收
window:behaviorChanged弹窗行为策略变更
window:minimizeSuppressed抑制最小化(Win+D 策略)
window:backdropStateChanged主窗口 / popup 的 DWM 激活/失焦策略生效

面板事件

事件触发时机
panel:initialized面板初始化完成
panel:focus面板获得焦点
panel:blur面板失去焦点
panel:visibilityChangedDUI 面板可见性变化
panel:configChanged面板配置变化

UI 事件

事件触发时机
ui:coloursChanged颜色主题变化
ui:fontChanged字体变化
ui:menuItemClicked菜单项点击
ui:toast通知消息
system:themeChanged系统主题变化

应用生命周期事件

事件触发时机
app:beforeQuitfoobar2000 即将退出(fire-and-forget,前端可做快速清理)

HTTP 事件

事件触发时机数据
http:response异步 HTTP 请求完成

JIT Queue 事件

事件触发时机数据
jitQueue:needNext后端请求下一首
jitQueue:trackChanged播放曲目变化
jitQueue:listExhausted缓冲区耗尽
jitQueue:error错误

键盘事件

事件触发时机数据
keyboard:hotkey快捷键触发

跨窗口通信事件

事件触发时机数据
port:connected命名通道连接
port:disconnected命名通道断开
port:message收到跨窗口消息

共享状态事件

事件触发时机数据
state:changed共享状态变更
state:deleted共享状态删除

插件事件

事件触发时机数据
plugin:registered外部插件注册
plugin:unregistered外部插件注销
api:registered外部 API 注册
api:unregistered外部 API 注销