房间管理
房间表示一个多人的视频会话,本部分介绍如何进行房间管理,获取房间信息以及用户信息,介绍如何使用踢人、mute 等常见功能。
加入房间
本地调用 QNRTCManager.joinRoom(String roomToken) 通过 roomToken 加入房间。
public void joinRoom(String roomToken)
此处 roomToken 需要 App 从 App Server 中获取,App Server 如何生成 roomToken 可查阅RoomToken 的计算。
本地用户加入房间成功后,会触发如下回调:
本地:
void onJoinedRoom()
远端:
void onRemoteUserJoined(String userId)
离开房间
本地调用 leaveRoom 接口离开房间。
public void leaveRoom()
本地用户离开房间成功后,会触发如下回调:
远端:
void onRemoteUserLeaved(String userId)
房间信息
获取房间内用户列表
本地调用 QNRTCManager.getUserList() 接口获取连麦房间中的用户的列表(不包含自己)。
public ArrayList<String> getUserList()
本地调用 QNRTCManager.getPublishingUserList() 接口获取连麦房间中已发布音/视频的用户的列表(不包含自己)。
public ArrayList<String> getPublishingUserList()
注意:连麦状态为 QNRoomState.CONNECTED 才可获取相关列表
获取房间状态信息
本地调用 QNRTCManager.getRoomState 接口获取当前的房间状态信息,包括 IDLE、CONNECTING、CONNECTED 以及 RECONNECTING 等状态。
public QNRoomState getRoomState()
踢人
将 userId 对应的远端用户踢出房间
public void kickOutUser(String userId)
当本地调用踢人的功能,将 userId 对应的用户踢出房间时,会触发如下回调:
本地:
void onUserKickedOut(String userId)
远端:
void onError(int errorCode, String description)
对应的 errorCode 为 10006(ERROR_KICKED_OUT_OF_ROOM)
Mute 音/视频
Mute 本地音/视频
通过调用 QNRTCManager.muteLocalAudio 接口 mute 本地音频,mute 后远端将无法听到本地的声音
public void muteLocalAudio(boolean isMute)
通过调用 QNRTCManager.muteLocalVideo 接口 mute 本地视频,mute 后远端将无法看到本地的画面
public void muteLocalVideo(boolean isMute)
调用了上述接口将本地音视频开启/关闭后,会触发如下回调:
远端:
void onRemoteMute(String userId, boolean isAudioMuted, boolean isVideoMuted)
Mute 远端音频
通过调用 QNRTCManager.muteRemoteAudio 接口 mute 远端音频,mute 后将无法听到远端的声音
public void muteRemoteAudio(boolean isMute)