Skip to main content

Plugin Event

概述

插件系统通过 on/emit 机制实现,可以在插件的 install 方法中使用 ctx.on 订阅事件,并根据插件的优先级控制执行顺序。优先级为 0 的插件最先加载,通常用于系统插件。插件可以通过 EventType.XXX 订阅特定的事件,在不同位置注入逻辑。方法返回值应为 ctx

1. 事件类型定义

EventType 枚举定义了系统中可触发的事件。以下是预定义的事件类型:

名称触发时间影响内容
PLAY点击播放时——
PAUSE暂停播放时
STOP停止播放时
SEEK调整位置时
SET_VOLUME设置音量时
SET_MODE切换播放模式时
SEARCH搜索结果时
PLAYLIST_UPDATED播放列表更新时
ERROR出现错误时
LOADING资源加载时
SETTING_UPDATED设置更新时

可以通过在事件名前添加 BEFORE_ 来订阅事件前的操作,例如 BEFORE_PLAY 在播放前触发。

示例

class MyPlugin implements IPlugin {
id = 'my-plugin';
name = 'my-plugin';
author = 'flex-lark';
description = '';
version = 'v1.0';
install(ctx: PluginContext) {
ctx.on(EventType.BEFORE_PLAY, () => {
console.log("播放前的处理逻辑");
});

ctx.on(EventType.PLAY, () => {
console.log("播放事件被触发");
});
}
}