会议扩展性

更新时间: 2026/01/06 15:49:38

本文介绍如何利用网易会议组件(NEMeetingKit)的扩展性特性,通过透传字段实现业务定制化需求,帮助您在现有接口基础上扩展更多功能。

透传机制

NEMeetingKit 通过透传字段提供上层业务相应的扩展能力,使您能够在不修改 SDK 的情况下实现自定义业务逻辑。透传字段包括:

以上透传字段允许在应用层传入自定义 JSON 数据,在会议流程中的不同环节被解析和使用,实现个性化功能。

在使用透传字段实现业务扩展时,请注意以下数据结构设计实践:

  • 层次化的 JSON 结构:将不同类型的数据按模块组织,避免扁平化结构。
  • 使用命名空间:使用前缀或嵌套对象来区分不同功能模块的数据。
  • 版本控制:在数据中包含版本号,便于后续兼容性处理。
  • 避免传输敏感信息:透传字段可能在网络传输中被拦截,建议您对敏感数据进行加密后再传输。
  • 使用令牌而非原始凭据:传输短期有效的令牌而非长期凭据
  • 控制数据大小:遵循透传字段的大小限制(extraData 2KB,tag 1KB),建议只传输必要数据,避免冗余。
  • 延迟加载:对非即时需要的大型数据,考虑使用 ID 引用并在需要时再加载。
  • 异常处理:透传数据的解析应当包含异常处理,以防数据格式不符合预期导致应用崩溃。

设置会议透传字段 (extraData)

会议透传字段 extraData 支持在创建会议时传入自定义数据,最大支持 2KB 的字符串。

Java// 创建会议参数
NEStartMeetingParams params = new NEStartMeetingParams();

// 创建自定义数据对象
JSONObject extraDataObj = new JSONObject();
try {
    // 添加自定义业务数据
    extraDataObj.put("businessId", "10086");
    extraDataObj.put("projectName", "项目方案讨论");
    extraDataObj.put("deptCode", "D2023");
    extraDataObj.put("priority", "high");

    // 设置透传字段
    params.extraData = extraDataObj.toString();
} catch (JSONException e) {
    e.printStackTrace();
}

// 设置其他会议参数
params.displayName = "张三";

// 开始会议
NEMeetingKit.getInstance().getMeetingService().startMeeting(context, params, new NECallback<Void>() {
    @Override
    public void onResult(int code, String msg, Void data) {
        Log.e("NEMeeting", "创建会议结果: " + code + ", " + msg);
    }
});

设置成员透传字段 (tag)

成员透传字段 tag 用于标识参会者的身份信息或附加属性,最大支持 1024 字节。这些信息将在会议中与用户关联,并可用于自定义处理逻辑。

Java// 创建会议参数
NEJoinMeetingParams meetingParams = new NEJoinMeetingParams();

// 创建自定义用户标签
JSONObject tagObj = new JSONObject();
try {
    // 用户身份相关信息
    tagObj.put("userId", "U10010");
    tagObj.put("roleId", "admin");
    tagObj.put("orgId", "headquarters");
    tagObj.put("title", "产品经理");
    tagObj.put("level", 3);

    // 用户权限配置
    JSONObject permissions = new JSONObject();
    permissions.put("canShareScreen", true);
    permissions.put("canManageMembers", true);
    permissions.put("canRecordMeeting", true);
    permissions.put("canEndMeeting", false);
    tagObj.put("permissions", permissions);

    // 设置成员标签
    meetingParams.tag = tagObj.toString();
} catch (JSONException e) {
    e.printStackTrace();
}

// 设置其他参数
meetingParams.displayName = "李四";

// 加入会议
NEMeetingKit.getInstance().getMeetingService().joinMeeting(context, meetingParams, new NECallback<Void>() {
    @Override
    public void onResult(int code, String msg, Void data) {
        Log.e("NEMeeting", "加入会议结果: " + code + ", " + msg);
    }
});

在会议中获取透传数据

在会议进行过程中,您可以通过两种主要方式获取和使用之前设置的透传数据。

您可以随时通过调用 NEMeetingKit 提供的接口来主动获取当前会议的完整信息,包括透传数据:

Java// 主动查询会议信息
NEMeetingKit.getInstance().getMeetingService().getCurrentMeetingInfo(new NECallback<NEMeetingInfo>() {
    @Override
    public void onResult(int resultCode, String resultMessage, NEMeetingInfo resultData) {
        if (resultData != null) {
          final String extraData = resultData.extraData;
          final String tag = resultData.userList.get(0).tag;
        }
    }
});

处理透传数据

获取到透传数据后,您可以实现多种定制化功能:

  1. 身份识别与权限控制:根据成员 tag 中的角色信息,动态调整会议中可用的功能。
  2. 业务关联:将会议与您的业务系统关联,例如显示关联的项目信息或客户资料。
  3. 界面定制:基于 extraData 中的配置,调整会议界面的布局或主题。
  4. 行为跟踪:记录特定业务相关的会议行为,用于后续分析或报告生成。
此文档是否对你有帮助?
有帮助
去反馈
  • 透传机制
  • 设置会议透传字段 (extraData)
  • 设置成员透传字段 (tag)
  • 在会议中获取透传数据
  • 处理透传数据