事件说明
所有可用事件
SDK 提供了以下事件,通过 VmosEdgeClientEvents 常量访问:
| 事件名称 | 常量值 | 说明 | 事件数据 |
|---|---|---|---|
| 尺寸变化 | SIZE_CHANGED | 视频流尺寸或旋转发生变化时触发 | VmosEdgeSizeChangedEvent |
| 错误 | ERROR | 发生错误时触发 | VmosEdgeErrorEvent |
| 连接成功 | STARTED | 连接建立成功且视频流开始播放时触发 | void(无数据) |
| 连接停止 | STOPPED | 客户端停止运行(主动停止或严重错误)时触发 | void(无数据) |
| 剪贴板变化 | CLIPBOARD_CHANGED | 设备剪贴板内容变化时触发 | string(剪贴板内容) |
| 通道连接 | CHANNEL_CONNECTED | 单个通道(视频/音频/触控)连接建立时触发 | VmosEdgeChannelConnectedEvent |
| 群控设备加入 | GROUP_CONTROL_JOINED | 从设备成功加入群控组时触发 | VmosEdgeClientConfig |
| 群控设备离开 | GROUP_CONTROL_LEAVE | 从设备离开群控组时触发 | VmosEdgeClientConfig |
事件使用示例
typescript
import {
VmosEdgeClient,
VmosEdgeClientEvents,
type VmosEdgeErrorEvent,
type VmosEdgeSizeChangedEvent,
} from "@vmosedge/web-sdk";
const client = new VmosEdgeClient({ /* ... */ });
// 连接成功
client.on(VmosEdgeClientEvents.STARTED, () => {
console.log("✅ 设备连接成功,画面已准备就绪");
});
// 连接停止
client.on(VmosEdgeClientEvents.STOPPED, () => {
console.log("⏹️ 连接已停止");
});
// 错误处理
client.on(VmosEdgeClientEvents.ERROR, (error: VmosEdgeErrorEvent) => {
console.error(`❌ 发生错误 [${error.code}]: ${error.message}`);
// 根据错误类型做不同处理
switch (error.type) {
case "connection":
console.error("连接错误,请检查网络和设备状态");
break;
case "video":
console.error("视频流错误,请检查视频端口");
break;
case "touch":
console.error("触控通道错误,请检查触控端口");
break;
}
});
// 尺寸变化
client.on(
VmosEdgeClientEvents.SIZE_CHANGED,
(size: VmosEdgeSizeChangedEvent) => {
console.log(`📐 画面尺寸变更: ${size.videoWidth} x ${size.videoHeight}`);
console.log(`🔄 旋转状态: ${size.rotation === 0 ? "竖屏" : "横屏"}`);
}
);
// 剪贴板变化
client.on(VmosEdgeClientEvents.CLIPBOARD_CHANGED, (content: string) => {
console.log(`📋 剪贴板内容变化: ${content}`);
});
// 通道连接
client.on(VmosEdgeClientEvents.CHANNEL_CONNECTED, (event) => {
console.log(`🔌 ${event.channel} 通道连接成功`);
});