Skip to content

事件说明

所有可用事件

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} 通道连接成功`);
});

VMOS Edge 团队出品