自定义菜单
更新时间: 2024/08/07 16:14:03
会议组件 NEMeetingKit 为您提供了一套会议中自定义菜单的接口,允许您对会议中的菜单进行更个性化的定制。
功能介绍
NEMeetingKit 支持底部 Toolbar 菜单与 更多 展开菜单两个区域的菜单定制,包括:
- 支持设置菜单项图标。
- 支持自定义 SDK 内置菜单与外部注入菜单的排序。
- 支持设置菜单显示规则,包括:始终可见、仅普通参会者可见、仅主持人可见。
- 支持无状态菜单项和有状态菜单项,且支持单击有状态的菜单项后触发状态迁移,并更新菜单的 UI 展示。
- 支持显示或隐藏 SDK 的内置菜单。
- 支持修改 SDK 内置菜单的 UI 展示。
注意事项
自定义菜单时,您需要通过 options
参数进行配置,但此参数仅支持 在入会前 完成设置,在会议中设置不会生效。
配置菜单
-
在创建会议、加入会议或匿名入会时,设置
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)
-
注册回调接口
setOnInjectedMenuItemClickListener
开始监听,并在回调方法中处理相应事件。TypeScript
const 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 |
是 | 是 |
此文档是否对你有帮助?