自定义菜单

更新时间: 2024/08/07 16:14:03

会议组件 NEMeetingKit 为您提供了一套会议中自定义菜单的接口,允许您对会议中的菜单进行更个性化的定制。

功能介绍

NEMeetingKit 支持底部 Toolbar 菜单与 更多 展开菜单两个区域的菜单定制,包括:

  • 支持设置菜单项图标。
  • 支持自定义 SDK 内置菜单与外部注入菜单的排序。
  • 支持设置菜单显示规则,包括:始终可见、仅普通参会者可见、仅主持人可见。
  • 支持无状态菜单项和有状态菜单项,且支持单击有状态的菜单项后触发状态迁移,并更新菜单的 UI 展示。
  • 支持显示或隐藏 SDK 的内置菜单。
  • 支持修改 SDK 内置菜单的 UI 展示。

注意事项

自定义菜单时,您需要通过 options 参数进行配置,但此参数仅支持 在入会前 完成设置,在会议中设置不会生效。

配置菜单

  1. 在创建会议、加入会议或匿名入会时,设置 options 相关参数。

    TypeScript// 通过 startMeeting 或 joinMeeting opts 传入
    const neMeetingKit = NEMeetingKit.getInstance()
    const meetingService = neMeetingKit.getMeetingService()
    
    const param = {
    displayName: '入会昵称',
    // 会议号
    meetingNum: '123456',
    }
    
    const opts = {
    // 工具栏菜单
    fullToolbarMenuItems: [
        {
        // 自定义菜单需要 ID 大于 100
        itemId: 101,
        visibility: NEMenuVisibility.VISIBLE_ALWAYS,
        singleStateItem: {
            // 按钮图标
            icon: '',
            // 按钮文案
            text: '',
        },
        },
    ],
    // 更多菜单
    fullMoreMenuItems: [
        {
        // 自定义菜单需要 ID 大于 100
        itemId: 102,
        visibility: NEMenuVisibility.VISIBLE_ALWAYS,
        singleStateItem: {
            // 按钮图标
            icon: '',
            // 按钮文案
            text: '',
        },
        },
    ]
    }
    
    meetingService.joinMeeting(param,opts)
    
  2. 注册回调接口 setOnInjectedMenuItemClickListener 开始监听,并在回调方法中处理相应事件。

    TypeScriptconst neMeetingKit = NEMeetingKit.getInstance()
    const meetingService = neMeetingKit.getMeetingService()
    
    const meetingOnInjectedMenuItemClickListener = {
    onInjectedMenuItemClick(clickInfo, meetingInfo) {
        // 菜单单击回调
    },
    }
    
    meetingService.setOnInjectedMenuItemClickListener(
    meetingOnInjectedMenuItemClickListener
    )
    

相关参考

API 参考

自定义菜单项相关

类/接口 说明
NEMenuVisibility 菜单项可见性的枚举值。
NEMenuItemInfo 自定义菜单项的 UI 展示。自定义一个标题与图标。
NEMeetingMenuItem 菜单项抽象基类。自定义菜单 ID 与菜单可见性,无法实例化。
NESingleStateMenuItem 单状态菜单项实现类。此类菜单始终展示相同的标题与图标。
NECheckableMenuItem 双状态菜单项实现类。此类菜单包括选中和非选中两个状态,单击后可切换状态,并展示与当前状态对应的 UI。

菜单图标规格说明

添加自定义菜单项时,建议图标资源的尺寸大小为 24px*24px。

SDK 内置菜单项

NEMeetingKit 目前内置了以下菜单项,您可根据需要调整内置菜单项的位置、标题、图标和可见性。

TypeScript// 内置菜单
enum NEMenuIDs { // 菜单项 ID
  mic = 0,
  camera = 1,
  screenShare = 2,
  participants = 3,
  invite = 20,
  chat = 21,
  whiteBoard = 22,
  live = 25,
  security = 26,
  record = 27,
  setting = 28,
  notification = 29,
  interpretation = 31,
  annotation = 30,
  caption = 32,
  transcription = 33,
  feedback = 34,
}
菜单项
菜单 ID
是否允许在 Toolbar 菜单中显示
是否允许在 更多 展开菜单中显示
音频 NEMenuIDs.mic
视频 NEMenuIDs.camera
屏幕共享 NEMenuIDs.screenShare
参会者 NEMenuIDs.participants
邀请 NEMenuIDs.invite
聊天 NEMenuIDs.chat
白板 NEMenuIDs.whiteBoard
录制 NEMenuIDs.record
设置 NEMenuIDs.setting
通知 NEMenuIDs.notification
同声传译 NEMenuIDs.interpretation
批注 NEMenuIDs.annotation
字幕 NEMenuIDs.caption
转写 NEMenuIDs.transcription
反馈 NEMenuIDs.feedback
此文档是否对你有帮助?
有帮助
去反馈
  • 功能介绍
  • 注意事项
  • 配置菜单
  • 相关参考
  • API 参考
  • 菜单图标规格说明
  • SDK 内置菜单项