会议管理
更新时间: 2024/11/19 17:43:05
本文介绍如何通过网易会议组件管理会议的相关示例。
前提条件
根据本文操作前,请确保您已经完成了 登录鉴权。
离开或结束会议
您可以调用 leaveCurrentMeeting
离开当前进行中的会议,并通过参数控制(closeIfHost
)是否同时结束当前会议。
Java// 获取NEMeetingKit的实例
NEMeetingKit meetingKit = NEMeetingKit.getInstance();
// 获取会议服务
NEMeetingService meetingService = meetingKit.getMeetingService();
// false: 仅离开会议。true: 离开并结束会议。
boolean closeIfHost = false; // 根据实际情况设置这个值
// 离开当前会议
meetingService.leaveCurrentMeeting(closeIfHost, new NECallback<Void>() {
@Override
public void onResult(int resultCode, String resultMsg, Void result) {
if (resultCode == NEMeetingError.ERROR_CODE_SUCCESS) {
// 离开会议成功
System.out.println("成功离开会议");
} else {
// 离开会议失败
System.out.println("离开会议失败: " + resultMsg);
}
}
});
查询用户的会议设置
通过会议设置服务,设置和查询用户的当前会议设置,例如入会时的音视频开关状态、会议持续时间的显示等。
- 每个已登录的用户有自己独立的一份会议设置项。其他所有未登录用户、匿名用户共享一份会议设置项。
- 会议设置项仅在当前设备上保存,不会漫游。
- 调用创建会议或加入会议方法时,若您设置
NEMeetingOptions
参数为 null,SDK 会使用会议设置服务中已保存的相关配置进行创会/入会。
-
调用
getSettingService
方法获取会议设置服务。示例代码 如下:
Java
NESettingsService settingsService = NEMeetingKit.getInstance().getSettingsService();
-
调用不同方法设置或查询会议设置项。
-
设置或查询通用入会设置项
示例代码 如下:
Java
// 设置并保存会议设置 settingsService.enableShowMyMeetingElapseTime(true); settingsService.setTurnOnMyAudioWhenJoinMeeting(true); settingsService.setTurnOnMyVideoWhenJoinMeeting(true); //查询会议设置 boolean showMeetingElapseTimeEnabled = settingsService.isShowMyMeetingElapseTimeEnabled(); boolean audioEnabled = settingsService.isTurnOnMyAudioWhenJoinMeetingEnabled(); boolean videoEnabled = settingsService.isTurnOnMyVideoWhenJoinMeetingEnabled();
-
查询直播开通状态
示例代码 如下:
Java
/** * 查询直播开通状态 * @return true-打开,false-关闭 */ NEMeetingKit.getInstance().getSettingsService().isMeetingLiveEnabled();
-
获取当前会议信息
在已经完成 SDK 登录鉴权的状态下,获取当前会议信息。
调用 getCurrentMeetingInfo
方法获取当前会议信息并进行回调处理。该接口的回调结果的数据类型为 NEMeetingInfo
对象类型。
请确认已经通过一种入会方式(加入会议/创建会议/匿名入会)加入到会议内,否则回调数据对象为空。
示例代码 如下:
JavaNEMeetingKit.getInstance().getMeetingService().getCurrentMeetingInfo(new NECallback<NEMeetingInfo>() {
@Override
public void onResult(int resultCode, String resultMsg, NEMeetingInfo resultData) {
Log.d("OnCustomMenuListener", "getCurrentMeetingInfo:resultCode " + resultCode + "#resultData " + resultData.toString());
}
});
监听会议状态
通过注册会议状态回调接口,获取会议状态变更的通知。
-
注册回调接口
addMeetingStatusListener
开始监听,并在回调方法中根据您的需求处理相应事件。-
当回调参数
incremental
为 false 时,会议的状态为全量变更。 -
当回调参数
incremental
为 true 时,会议的状态为增量变更。- 该接口在初始化 SDK 成功后即可调用。
- 一次会议状态变更回调可能包含多个会议信息的变更。
示例代码 如下:
Java
NEMeetingStatusListener listener = new NEMeetingStatusListener() { @Override public void onMeetingStatusChanged(Event event) { //处理会议状态变更事件 } }; NEMeetingKit.getInstance().getMeetingService().addMeetingStatusListener(listener);
-
-
反注册回调接口
removeMeetingStatusListener
停止监听。示例代码 如下:
Java
NEMeetingKit.getInstance().getMeetingService().removeMeetingStatusListener(listener);
监听全局事件
通过注册全局事件回调接口,获取相应事件通知,目前支持监听 RTC 初始化和销毁相关的事件。
-
注册回调接口
addGlobalEventListener
开始监听,并在回调方法中根据您的需求处理相应事件。该接口在初始化 SDK 成功后即可调用。
示例代码 如下:
Java
NEMeetingKit.getInstance().addGlobalEventListener(new NEGlobalEventListener() { @Override public void beforeRtcEngineInitialize(String meetingNum, NERtcWrapper rtcWrapper) { //引擎初始化前回调 } @Override public void afterRtcEngineInitialize(String meetingNum, NERtcWrapper rtcWrapper) { //引擎初始化后回调 } @Override public void beforeRtcEngineRelease(String meetingNum, NERtcWrapper rtcWrapper) { //引擎销毁前回调 } });
-
反注册回调接口
removeGlobalEventListener
停止监听。示例代码 如下:
Java
NEMeetingKit.getInstance().removeGlobalEventListener(listener);