房间事件

房间相关事件以及发布订阅流程

image

房间事件和发布订阅图解

  • App 可以为 Room 设置事件代理回调,Room 的所有事件均通过代理方法回调给上层 APP

  • App 可以获取 Room 中的 localUser 进行资源发布

  • App 可以获取 Room 中的 remoteUsers 进行资源订阅

注册监听

/**
* 注册房间通知事件监听
*
* @param eventsListener {@link cn.rongcloud.rtc.events.RongRTCEventsListener}
*/
public void registerEventsListener(RongRTCEventsListener eventsListener)

/**
* 取消房间监听
*
* @param eventsListener {@link cn.rongcloud.rtc.events.RongRTCEventsListener}
*/
public void unRegisterEventsListener(RongRTCEventsListener eventsListener)

房间事件

SDK 事件回调的实现现在集中在 RongRTCRoom 中,上层实现RongRTCRoomDelegate 代理即可接收房间相关事件,包括事件如下:

/**
* 房间内用户发布资源
*
* @param remoteUser      远端用户
* @param publishResource 发布的资源
*/
void onRemoteUserPublishResource(RongRTCRemoteUser remoteUser, List<RongRTCAVInputStream> publishResource);

/**
* 用户发布的音频资源静音或者取消静音
*
* @param remoteUser    远端用户
* @param avInputStream 音频流
* @param mute          true表示静音,false表示取消静音
*/
void onRemoteUserAudioStreamMute(RongRTCRemoteUser remoteUser, RongRTCAVInputStream avInputStream, boolean mute);

/**
* 远端用户打开或关闭发布的视频流。
* 例如用户开启或者关闭摄像头
*
* @param remoteUser    远端用户
* @param avInputStream 视频流
* @param enable        true表示打开,false表示关闭
*/
void onRemoteUserVideoStreamEnabled(RongRTCRemoteUser remoteUser, RongRTCAVInputStream avInputStream, boolean enable);

/**
* 房间内用户取消发布资源
*
* @param remoteUser 远端用户
*/
void onRemoteUserUnPublishResource(RongRTCRemoteUser remoteUser, List<RongRTCAVInputStream> unPublishResource);

/**
* 用户加入房间
*
* @param remoteUser 远端用户
*/
void onUserJoined(RongRTCRemoteUser remoteUser);

/**
* 用户离开房间
*
* @param remoteUser 远端用户
*/
void onUserLeft(RongRTCRemoteUser remoteUser);

/**
* 用户离线
*
* @param remoteUser 远端用户
*/
void onUserOffline(RongRTCRemoteUser remoteUser);


/**
* 远端用户发布视频资源,订阅成功后,视频流通道建立成功的通知。
* 目前自动化测试会使用。
*
* @param userId 用户id
* @param tag    视频流tag
*/
void onVideoTrackAdd(String userId, String tag);

/**
* 远端用户发布视频资源,订阅成功后,绘制视频第一帧的通知
*
* @param userId 用户id
* @param tag    视频流tag
*/
void onFirstFrameDraw(String userId, String tag);

/**
* 自己退出房间。
* 例如断网退出等
*/
void onLeaveRoom();

/**
* 收到IM消息
*/
void onReceiveMessage(Message message);