房间管理
房间表示一个多人的视频会话,本部分介绍如何进行房间管理,获取房间信息以及用户信息,介绍如何使用踢人等常见功能。
加入房间
本地调用 QNRTCEngine.joinRoom(String roomToken)
通过 roomToken 加入房间。
public void joinRoom(String roomToken)
public void joinRoom(String roomToken, String userData)
userData
加入房间时可以根据业务需求,每个用户可携带自定义数据
关于 roomToken 在服务端的生成可查阅 RoomToken 的计算。
本地加入房间成功后,会触发如下回调:
本地用户收到的回调:
void onRoomStateChanged(QNRoomState state);
其中回调的值 state = QNRoomState.CONNECTED
。
远端用户收到的回调:
void onRemoteUserJoined(String remoteUserId, String userData);
离开房间
本地调用 QNRTCEngine.leaveRoom()
退出房间。本地退出房间成功后,会触发如下回调:
本地用户收到的回调:
void onRoomStateChanged(QNRoomState state);
其中回调的值 state = QNRoomState.IDLE
。
远端用户收到的回调:
void onRemoteUserLeft(String remoteUserId);
房间信息
获取房间内用户列表
本地调用 QNRTCEngine.getUserList()
接口获取音视频通话房间中的用户列表。
public List<QNRTCUser> getUserList()
本地可调用 QNRTCEngine.isFirstUser()
判断自己是否为房间内第一个用户。
public boolean isFirstUser()
获取房间状态信息
本地调用 QNRTCEngine.getRoomState()
接口获取音视频通话房间的房间状态信息,包括 IDLE(初始化)、CONNECTING(正在连接)、CONNECTED(连接成功)、RECONNECTING(正在重连)、RECONNECTED(重连成功)四种状态。
public QNRoomState getRoomState()
踢人
本地调用 QNRTCEngine.kickOutUser(String userId) 即可将 userId 对应的用户踢出房间。
public void kickOutUser(String userId)
当本地调用踢人功能将 userId 对应的用户踢出房间时,远端会触发如下回调:
void onKickedOut(String userId);
其中 userId 是将该用户踢出的用户的 userId。
对于踢人权限配置,请参考服务端文档