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() 中发起订阅,订阅成功后可以通过本对象的 videoTrack/auxiliaryTrack 字段获取远端视频轨道对象用于播放。以下是属性信息:
属性
类型
描述
audioMuted
boolean
远端当前麦克风是否静音。
videoMuted
boolean
远端当前摄像头是否关闭。
auxiliaryMuted
boolean
远端当前屏幕共享是否关闭。
auxiliaryTrack
如果成功订阅了远端用户的桌面共享,这里会保存远端的桌面共享视频轨道对象。
hasAudio
boolean
远端当前是否在发送音频。
hasAuxiliary
boolean
远端当前是否在发送屏幕共享。
hasVideo
boolean
远端当前是否在发送视频。
userId
string
远端用户的用户 ID。
videoTrack
如果成功订阅了远端用户的视频,这里会保存远端的视频轨道对象。
说明当前还未支持指定到个人的音频订阅,请需要订阅音频时将userId 置为字符串'mcu',代表订阅的是频道内远端用户合流后的音频,订阅一次后无需重复订阅,后续远端用户新发布的音频将自动合流。远端音频轨道在订阅mcu 音频后返回,不会归属到具体个人,例如:
client.subscribe('mcu', 'audio').then((track) => { track.play(); });
"user-joined": 远端用户加入频道事件,通过在客户端实例上监听这个事件可以获取到加入用户的信息,调用方式:
client.on('user-joined', (user: RemoteUser) => { console.log(user); });
"user-left": 远端用户离开频道事件,通过在客户端实例上监听这个事件可以获取到该用户的信息,调用方式:
client.on('user-left', (user: RemoteUser) => { console.log(user); });