其他界面定制

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

本文介绍在安卓平台上使用网易会议组件 NEMeetingKit 有关界面定制的其他场景。

设置悬浮窗大小

您可以通过 NEWindowSize 自定义会议最小化时的悬浮窗口大小。

示例代码如下:

Java// 创建会议选项对象
NEJoinMeetingOptions options = new NEJoinMeetingOptions();

// 设置悬浮窗口大小(宽度和高度,单位为 dp)
NEWindowSize windowSize = new NEWindowSize();
windowSize.width = 120.0; // 宽度为 120dp
windowSize.height = 180.0; // 高度为 180dp

// 设置到会议选项中
options.floatingWindowSize = windowSize;
// 加入会议
NEMeetingKit.getInstance().getMeetingService().joinMeeting(context, params, options, callback);

自定义会中 UI 单击监听

您可以通过实现 NEMeetingViewClickListener 接口来自定义会议信息的显示和管理参会者中的邀请功能。

示例代码如下:

Java// 创建会议视图单击监听器
NEMeetingViewClickListener viewClickListener = new NEMeetingViewClickListener() {
    @Override
    public boolean onClickMeetingInfoIcon(Context context, NEMeetingInfo meetingInfo) {
        // 自定义会议信息显示逻辑
        String meetingId = meetingInfo.getMeetingId();
        String subject = meetingInfo.getSubject();
        String hostName = meetingInfo.getHostName();

        // 显示自定义会议信息对话框
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle("会议详情")
               .setMessage("会议 ID: " + meetingId + "\n主题: " + subject + "\n主持人: " + hostName)
               .setPositiveButton("复制会议号", (dialog, which) -> {
                   ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
                   ClipData clip = ClipData.newPlainText("会议号", meetingId);
                   clipboard.setPrimaryClip(clip);
                   Toast.makeText(context, "会议号已复制", Toast.LENGTH_SHORT).show();
               })
               .setNegativeButton("关闭", null)
               .show();

        // 返回 true 表示拦截默认的会议信息显示
        return true;
    }

    @Override
    public boolean onClickInviteIcon(Context context, NEMeetingInfo meetingInfo) {
        // 自定义邀请功能逻辑
        String inviteText = "我正在参加一个会议,会议 ID: " + meetingInfo.getMeetingId() +
                            ",主题: " + meetingInfo.getSubject() +
                            ",请通过以下链接加入: https://meeting.example.com/" + meetingInfo.getMeetingId();

        Intent shareIntent = new Intent();
        shareIntent.setAction(Intent.ACTION_SEND);
        shareIntent.putExtra(Intent.EXTRA_TEXT, inviteText);
        shareIntent.setType("text/plain");
        context.startActivity(Intent.createChooser(shareIntent, "邀请参会者"));

        // 返回 true 表示拦截默认的邀请功能
        return true;
    }
};

// 设置会议视图单击监听器,需要在加入会议前设置
NEMeetingKit.getInstance().setMeetingViewClickListener(viewClickListener);

其他 UI 定制选项

NEMeetingKit 中的 NEMeetingOptions 提供了丰富的会中 UI 配置选项,以下是一些常用配置:

Java// 创建会议选项对象
NEJoinMeetingOptions options = new NEJoinMeetingOptions();

// 隐藏聊天功能
options.noChat = true;

// 隐藏邀请按钮
options.noInvite = true;

// 隐藏白板共享
options.noWhiteBoard = true;

// 配置视频画面上显示用户名
options.showNameInVideo = true;

// 配置会议信息显示选项
options.meetingIdDisplayOption = NEMeetingIdDisplayOption.DISPLAY_ALL;

// 配置表情回应是否显示
options.showEmojiResponse = true;

// 配置举手功能是否显示
options.showHandsUp = true;

// 配置会议中是否显示会议信息查看入口
options.showMeetingInfo = true;

// 配置是否显示会议剩余时间提醒
options.showMeetingRemainingTip = true;

// 配置摄像头镜像
options.enableFrontCameraMirror = true;

// 使用配置项加入或开始会议
NEMeetingKit.getInstance().getMeetingService().joinMeeting(context, params, options, callback);
// 或
NEMeetingKit.getInstance().getMeetingService().startMeeting(context, params, options, callback);
此文档是否对你有帮助?
有帮助
去反馈
  • 设置悬浮窗大小
  • 自定义会中 UI 单击监听
  • 其他 UI 定制选项