RTC SDK为您提供了频道成员管理的接口方法,您可以获取远端在线用户列表、查询远端用户信息等功能。通过阅读本文,您可以了解频道成员管理的方法。

实现方法

以下为常用的频道成员管理方法,更多信息,请参见DingRTC

  • remoteUsers:远端用户信息列表,包含频道中各个远端用户的用户 ID 和轨道信息。

    如果本地用户没有加入频道,该列表为空。可通过join()时返回,或在加入频道后访问client的对应属性获取。

    const client = DingRTC.createClient();
    // join成功后返回
    const { remoteUsers } = client.join({
      appId: 'xxx',
      channel: 'xxx',
      uid: 'xxx',
      userName: 'xxx',
      token: 'xxx',
    })
    // 直接访问client的属性
    const users: RemoteUser[] = client.remoteUsers;
  • RemoteUser:远端用户列表的元素,该对象描述了频道内远端用户的当前状态,包括远端用户 ID、远端是否发布了音频或视频等。如果检测到远端用户已经发布,可以将这个用户的userId传入 subscribe() 中发起订阅,订阅成功后可以通过本对象的 audioTrack 或者 videoTrack 字段获取远端音视频轨道对象用于播放。以下是属性信息:

    属性

    类型

    描述

    audioMuted

    boolean

    远端当前麦克风是否静音。

    videoMuted

    boolean

    远端当前摄像头是否关闭。

    auxiliaryMuted

    boolean

    远端当前屏幕共享是否关闭。

    audioTrack

    RemoteAudioTrack

    如果成功订阅了远端用户的音频,这里会保存远端的音频轨道对象。

    auxiliaryTrack

    RemoteVideoTrack

    如果成功订阅了远端用户的桌面共享,这里会保存远端的桌面共享视频轨道对象。

    hasAudio

    boolean

    远端当前是否在发送音频。

    hasAuxiliary

    boolean

    远端当前是否在发送屏幕共享。

    hasVideo

    boolean

    远端当前是否在发送视频。

    userId

    string

    远端用户的用户 ID。

    videoTrack

    RemoteVideoTrack

    如果成功订阅了远端用户的视频,这里会保存远端的视频轨道对象。

    说明

    当前还未支持指定到个人的音频订阅,请需要订阅音频时将userId 置为字符串'mcu',代表订阅的是频道内远端用户合流后的音频。指定到个人的音频订阅将在近期支持。

  • "user-joined": 远端用户加入频道事件,通过在客户端实例上监听这个事件可以获取到加入用户的信息,调用方式:

    client.on('user-joined', (user: RemoteUser) => {
      console.log(user);
    });
    
  • "user-left": 远端用户离开频道事件,通过在客户端实例上监听这个事件可以获取到该用户的信息,调用方式:

    client.on('user-left', (user: RemoteUser) => {
      console.log(user);
    });