云服务器内容精选

  • 自定义会议中水印 在OpenSDKConfig中配置会中共享内容的自定义水印 共享的水印效果参考图1 使用场景 需要共享内容添加水印的场景有: 1.内部会议,共享材料比较机密,限部分人员查看 2.涉外会议,跨企业会议等,防止共享材料外泄 3.其他可能导致重要共享材料泄漏的场景 注意事项 1.SDK初始化的时候必须传入这个配置sdkConfig才会生效 图1 自定义水印 在桌面共享、程序共享、白板共享的接收端叠加水印图片,只有服务器上会中水印打开的情况下自定义水印才生效。如果不自定义,默认按照手机号、邮箱、会议ID+昵称优先级顺序显示,字体透明度10%。 示例代码 1 2 3 4 5 6 7 8 9 //自定义会中水印 public class CustomWatermarkHandle implements IWatermarkHandle { @Override public Bitmap getWatermarkBitMap(Activity curActivity) { Bitmap bitmap = BitmapFactory.decodeResource(curActivity.getResources(), R.drawable.watermark); return bitmap; } } sdkConfig.setWatermarkHandle(new CustomWatermarkHandle()); 父主题: 界面定制
  • Config 接口描述 Windows SDK中已经提供了会议中的界面,界面上的部分元素是可以自定义的。可以自定义的界面元素如下: 会议窗口名称 会议开始后,在Windows任务栏上会生成一个会议的图标,鼠标指向该图标时会显示会议的缩略窗口,该窗口的名称可以自定义。 图1 会议窗口名称 会议窗口的图标,可以替换HwmSdk\sdkResources\nativeimg目录下的video.ico图标文件。 会议信息及会议链接前缀 会议链接的 域名 前缀默认是https://bmeeting.huaweicloud.com/(如https://bmeeting.huaweicloud.com/#/j/982989574),如果入会Portal是第三方自己开发的,这个前缀需要自定义。 整个会议信息也可以自定义显示或者隐藏。 图2 会议信息 来电窗口 会议来电窗口默认在收到来电时弹出,可配置成隐藏,在收到来电通知时调用会议来电应答接口来应答: 图3 来电窗口 会控按钮 删除或者修改SDK中自带的会控按。具体可以删除和修改的按钮见按钮ID定义表。 自定义新增按钮。具体用例见自定义会控按钮。 图4 底部工具栏和更多菜单 图5 共享工具栏和更多菜单 图6 自定义子菜单项: 自定义会议信息窗口 图7 自定义会议信息框 图8 状态工具栏 图9 与会者详情头像点击 自定义会议信息窗口请参考“显示会议信息框”和“销毁会议信息框”。 注意事项 只有需要更改会议界面默认显示样式时,才需要调用该接口,若默认样式已满足要求,可以不调用该接口。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode Config(char uiConfig[HWM_MAX_CONFIG_LEN]);
  • 社交分享定制 - (NSView *)socialShareView:(HWMSDKMeetingInfoModel* )confInfo; 接口描述 该接口用于分享会议拦截处理。实现代理后会拦截SDK调起分享界面的方法,如下图红框标注。 图1 分享拦截SDK弹窗 注意事项 如果实现该协议方法,则会中调用分享功能,会回调到该方法。窗口的位置以及界面的显示隐藏都有SDK内部控制。 示例代码 - (NSView *)socialShareView:(HWMSDKMeetingInfoModel *)meetingInfo { if (!self.socialView) { self.socialView = [[HWMSocialView alloc] initWithFrame:NSMakeRect(0, 0, 500, 300)]; self.socialView.wantsLayer = YES; self.socialView.layer.backgroundColor = [NSColor whiteColor].CGColor; } self.socialView.meetingInfo = meetingInfo; return self.socialView; } - (NSView *)socialShareView:(HWMConfStateInfo *)confInfo; 接口描述 该接口用于分享会议拦截处理。实现代理后会拦截SDK调起分享界面的方法,如下图红框标注。 图2 分享拦截SDK弹窗 注意事项 如果实现该协议方法,则会中调用分享功能,会回调到该方法。窗口的位置以及界面的显示隐藏都有SDK内部控制。 示例代码 - (NSView *)socialShareView:(HWMConfStateInfo *)confDetail { if (!self.socialView) { self.socialView = [[HWMSocialView alloc] initWithFrame:NSMakeRect(0, 0, 500, 300)]; self.socialView.wantsLayer = YES; self.socialView.layer.backgroundColor = [NSColor whiteColor].CGColor; } self.socialView.confDetail = confDetail; return self.socialView; } 父主题: 界面定制
  • ShowToast 接口描述 该接口用于显示toast。 注意事项 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode ShowToast(const HwmToastInfo* toastInfo); 回调函数 1 virtual void OnShowToastResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 参数说明 参数 是否必须 类型 描述 toastInfo 是 HwmToastInfo toast提示信息。 表2 结构体HwmToastInfo参数说明 参数 类型 描述 content char[] 提示内容。 duration int 提示持续时间(单位:秒)。 表3 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * 显示toast提示 */ void demoShowToastDlg::OnBnClickedOk() { hwmsdkagent::HwmToastInfo toastInfo{ 0 }; std::string toastContent = "toastContent"; strcpy_s(toastInfo.content, HWM_MAX_TOAST_CONTENT_LEN, toastContent.c_str()); toastInfo.duration = 5; int ret = hwmsdkagent::ShowToast(&toastInfo); if (hwmsdk::HWM_COMMON_SUC CES S != ret) { AfxMessageBox(_T("show toast error")); return; } }
  • getErrorMessage 接口描述 该接口可根据错误码获取错误提示。 方法定义 1 - (NSString *)getErrorMessage:(NSUInteger)code; 参数描述 表1 参数说明 参数 类型 描述 code NSUInteger 错误码。 返回值 表2 参数说明 类型 描述 NSString * 错误提示。 示例代码 1 2 3 - (void)setError:(NSError *)error { NSString *errorTips = [[HWMBizSdk getBizOpenApi] getErrorMessage:error.code]; }
  • 自定义会中通知栏 该接口用于自定义通知栏中的会议通知图标,默认是如图1所示 使用场景 通知栏中通知图标使用和自己应用图标一致的场景 注意事项 1.SDK初始化的时候必须传入这个配置sdkConfig才会生效 图1 自定义会中通知栏 示例代码 1 2 3 4 5 6 sdkConfig.setNotificationStrategy(new INotificationStrategy() { @Override public int resSmallIcon() { return R.mipmap.ic_launcher; } }); 父主题: 界面定制
  • 自定义会控按钮 自定义新增按钮。底部工具栏按钮、共享工具栏和更多菜单中的按钮支持第三方开发者自定义添加。目前底部工具栏和共享工具栏限制自定义按钮个数为1,超出的自定义按钮会移入更多菜单,自定义底部/共享工具栏按钮的顺序固定在“更多”按钮前;自定义更多菜单按钮会在底部和共享工具栏更多按钮中同时生效,底部工具栏的更多菜单中自定按钮添加在菜单栏最后,共享工具栏的更多菜单中自定按钮添加在“离开”按钮前。 删除自定义按钮。通过Config接口删除customButton中的按钮配置,关于清空自定义按钮操作,若赋值customButton:[],则清空全量自定义按钮;若customButton下未配置某位置下的自定义按钮,则清空该位置下的自定义按钮。 自定义按钮子菜单功能说明: 当 subMenu 为空时,点击按钮通知对应按钮 id 被点击; 当 subMenu 不为空时,点击按钮显示 subMenu 二级菜单,并且不通知; 通过Config接口增删改自定义按钮时,需要传对应位置的全量自定义按钮,支持动态刷新底部/共享工具栏,更多菜单不支持,而是在重新生成时刷新。刷新单个自定义按钮请参考刷新自定义按钮配置。 增加自定义按钮 以添加自定义带子菜单的底部工具栏按钮、共享工具栏按钮和更多菜单按钮为例: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ { "id": "customMenu", "title": "自定义按钮", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 1, "subMenu":[ { "id": "customSecondMenu", "title": "二级菜单", "buttonImg": "D:/demoResource/icon-whiteboard.svg" } ] }, { "id": "customMore", "title": "自定义更多", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 0 }, { "id": "customShare", "title": "自定义共享", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 2 } ] } } } } 更新自定义按钮 注意确保id和buttonPos正确,修改按钮的其他信息。以重命名底部工具栏按钮为例: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ { "id": "customMenu", "title": "重命名按钮", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 1, "subMenu":[ { "id": "customSecondMenu", "title": "二级菜单", "buttonImg": "D:/demoResource/icon-whiteboard.svg" } ] }, { "id": "customMore", "title": "自定义更多", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 0 }, { "id": "customShare", "title": "自定义共享", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 2 } ] } } } } 删除部分自定义按钮 customButton删除对应按钮,同时需要保留其他自定义按钮。以删除底部工具栏自定义按钮为例: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ { "id": "customMore", "title": "自定义更多", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 0 }, { "id": "customShare", "title": "自定义共享", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 2 } ] } } } } 清空某个位置下的自定义按钮 customButton中删除该位置下的所有自定义按钮即可,若customButton下未配置某位置下的自定义按钮,则会清空该位置下的自定义按钮。以清空底部工具栏自定义按钮为例: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ { "id": "customMore", "title": "自定义更多", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 0 }, { "id": "customShare", "title": "自定义共享", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 2 }, ] } } } } 清空全量自定义按钮 customButton传入空数组,会清空所有位置下自定义按钮。清空示例如下: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ ] } } } } 父主题: 界面定制