自定义菜单
更新时间: 2024/08/07 16:14:03
会议组件 NEMeetingKit 为您提供了一套会议中自定义菜单的接口,允许您对会议中的菜单进行更个性化的定制。
功能介绍
NEMeetingKit 支持底部 Toolbar 菜单与更多展开菜单两个区域的菜单定制,包括:
- 支持设置菜单项图标。
- 支持自定义 SDK 内置菜单与外部注入菜单的排序。
- 支持设置菜单显示规则,包括:始终可见、仅普通参会者可见、仅主持人可见。
- 支持无状态菜单项和有状态菜单项,且支持点击有状态的菜单项后触发状态迁移,并更新菜单的 UI 展示。
- 支持显示或隐藏 SDK 的内置菜单。
- 支持修改 SDK 内置菜单的 UI 展示。
注意事项
自定义菜单时,您需要通过 options
参数进行配置,但此参数仅支持在入会前完成设置,在会议中设置不会生效。
配置 Toolbar 菜单列表
在创建会议、加入会议或匿名入会时,设置 options
相关参数。
NEJoinMeetingParams params;
params.meetingId = "123456789";
params.displayName = "Meeting";
NEJoinMeetingOptions options;
options.noAudio = true;
options.noVideo = true;
NEMeetingMenuItem menuItem;
#ifdef _WIN32
menuItem.itemImage = "C://feedback.png";
#else
menuItem.itemImage = "/Users/XX/feedback.png";
#endif
menuItem.itemId = 101;
menuItem.itemTitle = tr("Feedback").toStdString();
options.full_toolbar_menu_items_.push_back(menuItem);
ipcMeetingService->joinMeeting(params, options, [this](NEErrorCode errorCode, const std::string& errorMessage) {
});
配置更多展开菜单列表
- 在创建会议、加入会议或匿名入会时,设置
options
相关参数。
NEJoinMeetingParams params;
params.meetingId = "123456789";
params.displayName = "Meeting";
NEJoinMeetingOptions options;
options.noAudio = true;
options.noVideo = true;
NEMeetingMenuItem menuItem;
#ifdef _WIN32
menuItem.itemImage = "C://feedback.png";
#else
menuItem.itemImage = "/Users/XX/feedback.png";
#endif
menuItem.itemId = 101;
menuItem.itemTitle = tr("Feedback").toStdString();
options.full_more_menu_items_.push_back(menuItem);
ipcMeetingService->joinMeeting(params, options, [this](NEErrorCode errorCode, const std::string& errorMessage) {
});
- 注册回调接口
setOnInjectedMenuItemClickListener
开始监听,并在回调方法中处理相应事件。
// 继承按钮点击状态变更类,并处理点击
class NEMeetingMenuItemClickListener : public NEMeetingOnInjectedMenuItemClickListener {
public:
explicit NEMeetingMenuItemClickListener() {}
~NEMeetingMenuItemClickListener() {}
// 处理点击
virtual void onInjectedMenuItemClick(const NEMeetingMenuItem& meeting_menu_item) {}
// 处理点击,并回调状态变更
virtual void onInjectedMenuItemClickEx(const NEMeetingMenuItem& meeting_menu_item, const NEInjectedMenuItemClickCallback& cb) {}
};
NEMeetingMenuItemClickListener listener;
// 注册监听
auto pMeetingSDK = NEMeetingKit::getInstance();
auto ipcMeetingService = pMeetingSDK->getMeetingService();
if (ipcMeetingService) {
ipcMeetingService->setOnInjectedMenuItemClickListener(&listener);
}
相关参考
API 参考
会议组件 NEMeetingKit Windows&macOS 端的自定义菜单相关的关键类、接口和字段的介绍如下。
自定义菜单项相关
类/接口 | 描述 |
---|---|
NEMenuVisibility | 菜单项可见性的枚举值。 |
NEMeetingMenuItem | 自定义菜单项的 UI 展示,包括菜单项的 ID 与菜单项可见性。 |
监听点击菜单项操作相关
类/接口 | 描述 |
---|---|
NEMeetingOnInjectedMenuItemClickListener | 菜单项点击事件监听基类。 |
onInjectedMenuItemClick | 点击单状态菜单项时的描述信息。 |
onInjectedMenuItemClickEx | 点击多状态菜单项时的描述信息,支持返回状态转移的回调。 |
菜单项注入相关
字段 | 说明 |
---|---|
NEMeetingOptions#full_toolbar_menu_items_ | 配置会议中Toolbar菜单的完整列表。 |
NEMeetingOptions#full_more_menu_items_ | 配置会议中更多展开菜单的完整列表。 |
菜单图标规格说明
添加自定义菜单项时,建议图标资源的尺寸大小为 24px*24px。
SDK 内置菜单项
NEMeetingKit 目前内置了以下菜单项,您可根据需要调整内置菜单项的位置、标题、图标和可见性。
菜单项 |
菜单 ID |
是否允许在Toolbar菜单中显示 |
是否允许在更多展开菜单中显示 |
---|---|---|---|
音频 | kMicMenuId |
是 | 否 |
视频 | kCameraMenuId |
是 | 否 |
屏幕共享 | kScreenShareMenuId |
是 | 是 |
参会者 | kParticipantsMenuId |
是 | 否 |
管理参会者 | kMangeParticipantsMenuId |
是 | 否 |
邀请 | kInviteMenuId |
是 | 是 |
聊天 | kChatMenuId |
是 | 是 |
视图 | kViewMenuId |
是 | 是 |
白板 | kWhiteboardMenuId |
否 | 是 |
此文档是否对你有帮助?