Skip to content

用户事件

用户事件用于监听远端用户的上下线状态和用户相关的状态变化。

remoteUserOnLineNotify

远端用户上线通知事件。当有用户加入频道时触发。

事件签名

typescript
remoteUserOnLineNotify: (uid: string, elapsed: number) => void

参数说明

参数类型描述
uidstring上线用户的 ID
elapsednumber用户加入频道时的耗时(ms)

使用示例

javascript
engine.on('remoteUserOnLineNotify', (uid, elapsed) => {
  console.log('用户上线:', uid, '耗时:', elapsed + 'ms');

  // 更新用户列表 UI
  addUserToList(uid);

  // 可以在此时为新用户创建视频显示区域
  createVideoContainer(uid);
});

remoteUserOffLineNotify

远端用户下线通知事件。当有用户离开频道时触发。

事件签名

typescript
remoteUserOffLineNotify: (uid: string, reason: AliRtcUserOfflineReason) => void

参数说明

参数类型描述
uidstring下线用户的 ID
reasonAliRtcUserOfflineReason下线原因

使用示例

javascript
engine.on('remoteUserOffLineNotify', (uid, reason) => {
  console.log('用户下线:', uid, '原因:', reason);

  // 从用户列表中移除
  removeUserFromList(uid);

  // 清理该用户的视频显示区域
  removeVideoContainer(uid);

  // 根据下线原因进行不同处理
  switch (reason) {
    case AliRtcEngine.AliRtcUserOfflineReason.AliRtcUserOfflineQuit:
      console.log('用户主动离开');
      break;
    case AliRtcEngine.AliRtcUserOfflineReason.AliRtcUserOfflineDropped:
      console.log('用户网络异常离开');
      break;
    case AliRtcEngine.AliRtcUserOfflineReason.AliRtcUserOfflineKickedByServer:
      console.log('用户被服务器踢出');
      break;
  }
});

用户状态事件

remoteUserAudioMuted

远端用户音频静音状态变化事件。

typescript
remoteUserAudioMuted: (uid: string, muted: boolean) => void

参数说明:

  • uid: 用户 ID
  • muted: 是否静音,true 表示静音,false 表示取消静音
javascript
engine.on('userAudioMuted', (uid, muted) => {
  console.log(`用户 ${uid} 音频${muted ? '静音' : '取消静音'}`);

  // 更新 UI 显示音频状态
  updateUserAudioStatus(uid, muted);
});

remoteUserVideoMuted

远端用户视频静音状态变化事件。

typescript
remoteUserVideoMuted: (uid: string, muted: boolean) => void

参数说明:

  • uid: 用户 ID
  • muted: 是否关闭视频,true 表示关闭,false 表示开启
javascript
engine.on('userVideoMuted', (uid, muted) => {
  console.log(`用户 ${uid} 视频${muted ? '关闭' : '开启'}`);

  // 更新 UI 显示视频状态
  updateUserVideoStatus(uid, muted);

  if (muted) {
    // 显示用户头像或占位图
    showUserAvatar(uid);
  } else {
    // 隐藏头像,显示视频
    hideUserAvatar(uid);
  }
});

remoteUserScreenShareMuted

远端用户屏幕共享状态变化事件。

typescript
remoteUserScreenShareMuted: (uid: string, muted: boolean) => void

参数说明:

  • uid: 用户 ID
  • muted: 是否停止屏幕共享,true 表示停止,false 表示开始
javascript
engine.on('userScreenMuted', (uid, muted) => {
  console.log(`用户 ${uid} ${muted ? '停止' : '开始'}屏幕共享`);

  if (muted) {
    // 隐藏屏幕共享显示区域
    hideScreenShareContainer(uid);
  } else {
    // 显示屏幕共享显示区域
    showScreenShareContainer(uid);
  }
});