视频会议

8.1 获取XHMeetingManager实例,添加视频会议事件监听

XHMeetingManager meetingManager = XHClient.getInstance().getMeetingManager(this);
meetingManager.addListener(new IXHMeetingManagerListener() {
@Override
public void onJoined(String meetingID, String userID) {
//有新人加入会议
}

@Override
public void onLeft(String meetingID, String userID) {
//有人离开会议
}

@Override
public void onMeetingError(String meetingID, String error) {
//会议发生错误
}

@Override
public void onMembersUpdated(int membersNumber) {
//会议人数发生变化
}

@Override
public void onSelfKicked() {
//自己被踢出会议
}

@Override
public void onSelfMuted(int seconds) {
//自己被禁言
}

@Override
public void onReceivedMessage(XHIMMessage message) {
//收到会议内文字消息
}

@Override
public void onReceivePrivateMessage(XHIMMessage message) {
//收到会议内私信文字消息
}

@Override
public void onReceiveRealtimeData(byte[] data, String upId) {
//接收到实时白板数据
}
});

8.2 XHMeetingManager API 说明

/**
* 添加视频会议的事件监听
* @param meetingManagerListener IXHMeetingManagerListener 用于接收视频会议的相关事件
*/
void addListener(IXHMeetingManagerListener meetingManagerListener);

/**
* 设置媒体类型
* @param mediaTypeEnum 音视频同时存在,还是只开启其中一项。
*/
void setRtcMediaType(XHConstants.XHRtcMediaTypeEnum mediaTypeEnum);

/**
* 给会议参与者指定显示画面的View
* @param userID 用户ID
* @param player 用于显示图像的StarPlayer
* @param isBig 设置是否显示主播的大图
*/
void attachPlayerView(String userID,StarPlayer player,Boolean isBig);

/**
* 创建会议
* @param meetingItem 指定Live名字和类型
* @param callback 结果回调
*/
void createMeeting(XHMeetingItem meetingItem, IXHResultCallback callback);

/**
* 加入会议
* @param meetingID 会议ID
* @param callback 结果回调,成功时将返回sessionID,用于服务端录像记录查询
*/
void joinMeeting(String meetingID, IXHResultCallback callback);

/**
* 离开会议
* @param meetingID 会议ID
* @param callback 结果回调
*/
void leaveMeeting(String meetingID, IXHResultCallback callback);

/**
* 切换摄像头方向
*/
void switchCamera();

/**
* 切换摄像头
* @param cameraId 指定的摄像头ID
*/
void switchCamera(int cameraId);

/**
* 切换成大图
* @param userID 切换成大图的用户ID
*/
void changeToBig(String userID);

/**
* 切换成小图
* @param userID 切换成小图的用户ID
*/
void changeToSmall(String userID);

/**
* 动态开关音频,直播过程中可随时开关音频,直播结束后状态自动重置。
*/
void setAudioEnable(Boolean enable);

/**
* 动态开关视频,直播过程中可随时开关视频,直播结束后状态自动重置。
*/
void setVideoEnable(Boolean enable);

/**
* 发送会议消息
* @param message 发送的消息内容
* @param callback 结果回调
* @return 返回发送的消息对象
*/
XHIMMessage sendMessage(String message, IXHResultCallback callback);

/**
* 发送会议私密消息
* 私密消息只有目标用户可以收到
* @param toID 目标用户ID
* @param message 发送的消息内容
* @param callback 结果回调
* @return 返回发送的消息对象
*/
XHIMMessage sendPrivateMessage(String toID, String message, IXHResultCallback callback);

/**
* 对会议中的某人禁言
* @param meetingID 会议ID
* @param memberID 被禁言者ID
* @param muteSeconds 禁言时间
* @param callback 结果回调
*/
void muteMember(String meetingID, String memberID, int muteSeconds, IXHResultCallback callback);

/**
* 解除会议中某人的禁言
* @param meetingID 会议ID
* @param memberID 被禁言者ID
* @param callback 结果回调
*/
void unMuteMember(String meetingID, String memberID, IXHResultCallback callback);

/**
* 从会议室踢出用户
* @param meetingID 会议ID
* @param memberID 被踢者ID
* @param callback 结果回调
*/
void kickMember(String meetingID, String memberID, IXHResultCallback callback);

/**
* 推送RTMP流
* @param rtmpurl 推送地址
* @param callback 结果回调
*/
void pushRtmp(String rtmpurl,IXHResultCallback callback);

/**
* 停止推送RTMP流
* @param callback 结果回调
*/
void stopPushRtmp(IXHResultCallback callback);

/**
* 设置recorder
* @param recorder
*/
void setRecorder(IXHRecorder recorder);

/**
* 切换recorder
* @param recorder
*/
void resetRecorder(IXHRecorder recorder);

/**
* 发送实时数据,用于教学白板的数据传输
* @param data 数据
*/
void sendRealtimeData(byte[] data);