华为云用户手册

  • CancelSubCycleConf 接口描述 该接口用于取消未开始的周期子会议。 注意事项 该接口在登录状态下才能调用。 子会议未开始前可以调用接口,开始后调用则无效。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode CancelSubCycleConf(const HwmCancelSubCycleConfParam *cancelSubCycleConfParam); 回调函数 1 virtual void OnCancelSubCycleConfResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 结构体HwmCancelCycleConfParam参数说明 参数 是否必须 类型 描述 confId 是 char[] 会议id subConfID 是 char[] 子会议唯一标识UUID endOnlineConf 是 bool 是否需要结束在线会议 示例代码 1 2 3 4 5 6 7 8 9 10 11 /** * 取消周期子会议接口 */ int demoSubCycleConfList::CancelSubCycleConf() { hwmsdkagent::HwmCancelSubCycleConfParam subCycleConfParam{}; strcpy_s(subCycleConfParam.confId, sizeof(subCycleConfParam.confId), m_confInfo.confListInfo.confId); strcpy_s(subCycleConfParam.subConfID, sizeof(subCycleConfParam.subConfID), m_subCycleConfID.c_str()); subCycleConfParam.endOnlineConf = true; hwmsdkagent::CancelSubCycleConf(&subCycleConfParam); }
  • editCycleConf 接口描述 该接口用于编辑周期会议。 注意事项 该接口在已登录状态下才能调用。 所有字段必填,编辑修改的字段可来源于用户输入,其他不想修改的属性一定要取会议详情对应字段来赋值。 方法定义 1 - (void)editCycleConf:(HWMOrderCycleConfParam *_Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback 参数描述 表1 HWMOrderCycleConfParam参数说明 参数 是否必须 类型 描述 orderConfParam 是 HWMOrderConfParam 普通会议参数 cycleParam 是 HWMSDKCycleConfParamModel 周期会议参数 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 /// 编辑周期会议 - (void)editCycleConf{ HWMOrderCycleConfParam * cycleConfParam = [[HWMOrderCycleConfParam alloc] init]; cycleConfParam.orderConfParam.confSubject = @"我的预约会议"; cycleConfParam.orderConfParam.confType = OrderConfTypeVideo; cycleConfParam.orderConfParam.isNeedConfPwd = YES; cycleConfParam.orderConfParam.isAutoRecord = YES; cycleConfParam.orderConfParam.isRecordOn = YES; cycleConfParam.orderConfParam.startTime = 1633017600; //utc时间戳,单位秒,如果获取的时间是本地时间,需要转换成utc时间 cycleConfParam.orderConfParam.duration = 30; //会议持续时长(分钟) cycleConfParam.orderConfParam.timeZone = 56; cycleConfParam.orderConfParam.callInRestrictionType = HWMJoinConfRestrictionAll; HWMAttendeeInfo * attendeeInfo = [[HWMAttendeeInfo alloc] init]; attendeeInfo.name = @"Mike"; attendeeInfo.number = @"+991116003543"; attendeeInfo.isMute = YES; cycleConfParam.orderConfParam.attendee = @[attendeeInfo]; HWMSDKCycleConfParamModel * cycleConfParamModel = [[HWMSDKCycleConfParamModel alloc] init]; cycleConfParamModel.startDate = 1633017600; //utc时间戳,单位秒,如果获取的时间是本地时间,需要转换成utc时间; cycleConfParamModel.endDate = 1636560000; cycleConfParamModel.cycleType = HWMSDKCycleTypeWeek; cycleConfParamModel.preRemindDays = 1; cycleConfParam.cycleParam = cycleConfParamModel; [[HWMBizSdk getBizOpenApi] editCycleConf:cycleConfParam callback:^(NSError * _Nullable error, id _Nullable result) { if (!error) { NSLog(@"book cycle conf success"); [UIUtil showMessage:@"编辑周期会议会议成功"]; }else{ NSLog(@"book cycle conf fail errorCode : %zd",error.code); [UIUtil showMessage:[NSString stringWithFormat:@"编辑周期会议失败:%zd %@", error.code, error.localizedDescription]]; } }]; }
  • setLocalRecordPath 接口描述 用于自定义本地录制文件的存储路径。 注意事项 如果用户调用该接口指定了录制文件夹,则开启沙盒后不能重新创建,会写到默认路径。 方法定义 1 - (void)setLocalRecordPath:(NSURL *)url; 示例代码 1 2 3 4 5 6 7 8 9 NSOpenPanel *select = [NSOpenPanel openPanel]; select.canChooseFiles = NO; select.canChooseDirectories = YES; select.prompt = @"确定"; [select beginSheetModalForWindow:self.view.window completionHandler:^(NSModalResponse result) { if (result == 1) { [[HWMSdk getOpenSDK] setLocalRecordPath:select.URL]; } }];
  • setWaterMark 接口描述 该接口用于自定义共享时的水印。 方法定义 1 - (void)setWaterMark:(nullable NSAttributedString *)waterMarkString; 参数描述 水印要展示的内容。 返回值 无 示例代码 NSAttributedString *waterMarkString = [[NSAttributedString alloc] initWithString:@"水印内容"]; [[HWMSdk getOpenApi] setWaterMark:waterMarkString];
  • SetNetworkMode 接口描述 如华为云会议的媒体节点下沉部署到企业,并且管理节点也是通过企业内的代理访问,需要将网络模式设置成“企业内网接入”。 企业内的App无法直接访问公网(即媒体节点下沉和管理节点代理下沉场景)的情况下才需要调用该接口。 注意事项 该接口非必需调用,若不设置,则使用默认模式。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode SetNetworkMode(const HwmNetWorkModeInfo* networkInfo); 回调函数 1 virtual void OnSetNetworkModeResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 参数说明 参数 是否必须 类型 描述 networkInfo 是 HwmNetWorkModeInfo 网络模式信息。 表2 结构体HwmNetWorkModeInfo参数说明 参数 是否必须 类型 描述 accessType 是 HwmNetworkAccessType 网络接入类型。 netConnectType 是 HwmNetConnectType 网络连接类型。 表3 枚举HwmNetworkAccessType参数说明 枚举值 描述 AC CES S_TYPE_AUTO 默认值,目前和企业外网接入模式一致。 ACCESS_TYPE_INNER 企业内网接入,用于媒体和信令下沉场景,app从内网接入,信令/媒体消息走代理服务器才能访问云会议服务端。 ACCESS_TYPE_OUTER 企业外网接入,用于非媒体和信令下沉场景,互联网接入,信令/媒体消息可以直接访问云会议服务端。 表4 枚举HwmNetConnectType参数说明 枚举值 描述 NET_CONNECT_AUTO 默认值,自动模式。 NET_CONNECT_FORCE_VPN 强制vpn。 NET_CONNECT_FORCE_DIRECT 强制直连。 返回值 表5 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 /** * 设置网络模式 */ void demoSetNetworkModeDlg::SetNetworkMode() { hwmsdkagent::HwmNetWorkModeInfo networkMode{}; networkMode.accessType = hwmsdkagent::HwmNetworkAccessType::ACCESS_TYPE_AUTO; int ret = hwmsdkagent::SetNetworkMode(&networkMode); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("Set network mode failed")); } }
  • 会议ID相关名词 会议ID相关的名词包括: 会议ID(Conference ID):在创建并发资源会议时由系统生成的会议ID;或者在创建云会议室资源会议并且选择随机会议ID时由系统生成的会议ID。用户用这个ID加入会议。 云会议室会议ID(VMR Conference ID):属于某个云会议室或者某个账号的个人固定会议ID。如果创建的会议ID是固定的,用户用这个ID加入会议。 会议UUID(Conference UUID):会议开始后,由系统生成的UUID。如果同一个会议ID在预约时间到期前(或者主持人结束会议前),召开多次,会生成多个会议UUID。这个ID用户不可见。 云会议室ID(VMR ID):标志某个云会议室或者个人固定会议ID的唯一ID。创建云会议室资源的会议或者并发资源的个人固定会议ID的会议时,需要在创会接口中填入这个ID。这个ID用户不可见。 这几个ID之间的关系如下图所示: 图1 会议相关ID之间的关系 父主题: 专有名词解释
  • LoginBySSO 接口描述 该接口用于通过SSO的方式登录和鉴权。需要先通过GetSSOAuthorizeUrl接口获取到鉴权code。GetSSOAuthorizeUrl通过传 域名 获取到鉴权网站,用户在网站上输入账号+密码或者扫码完成鉴权获取到临时code(使用code完成登录)。 注意事项 创建会议,被邀入会等功能只有在登录后才能使用,若不登录,将无法体验完整会议功能。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode LoginBySSO(HwmSSOAuthInfo *ssoAuthInfo);
  • 70.13.5更新内容 1.OnLoginResult、OnLoginBySSOResult回调增加HwmLoginResult参数;OnLogoutResult回调增加HwmLogoutResult参数,接口详见账号操作。如果是老版本升级到70.13.5版本,需要修改回调函数的定义。 2.修改winUI日志后缀名为txt,修改了四个日志命名:hwm_winconfui.txt,hwmSdk.txt,hwmSdkAgent.txt,hwmSdkAgent32.txt 3.Config接口中新增配置项:isUploadKeyLog 是否自动收集日志的开关,接口详见7.5.3.1-界面配置 4.Init接口HwmInitInfo参数新增字段:preferredCamera 优选摄像头列表参数,接口详见7.5.1.1-初始化 5.新增接口AVDeviceCtrl音视频设备控制和结果回调OnAVDeviceCtrlResult,接口详见音视频设备控制;新增对应通知OnAVDeviceCtrlStateChanged音视频设备状态,通知详见音视频设备状态 6.Config接口配置自定义按钮,支持动态刷新底部/共享工具栏,接口详见界面配置 父主题: 版本更新内容
  • 70.13.5更新内容 login 和 logout 相关接口的回调中增加用户的userUuid(原来uuid字段)、account、thirdAccount,,详见登录返回HWMLoginResult、退出返回HWMLogoutResult。如果是老版本升级到70.13.5版本,需要修改回调函数的定义。 支持设置是否显示外部标签字段hideExternalLabel增加场景(转移主持人、聊天),详见初始化信息HWMOpenSDKConfig 新增被邀加入会议来电通知,详见被邀加入会议来电通知 父主题: 版本更新内容
  • 70.13.5更新内容 login 和 logout 相关接口的回调中增加用户的userUuid(原来uuid字段)、account、thirdAccount,,详见登录返回HWMLoginResult、退出返回HWMLogoutResult。如果是老版本升级到70.13.5版本,需要修改回调函数的定义。 新增会议来电状态变更通知,具体请见会议来电状态变更通知 新增呼叫来电通知。 新增开启共享声音功能,具体请见开启共享声音功能 本地录制默认路径变更,接入方App需要申请下载文件夹权限,具体请见工程文件配置。 父主题: 版本更新内容
  • 参数描述 表1 结构体HWMConfIncomingInfo参数说明 参数 类型 描述 state HWMConfIncomingState 来电状态。 mediaType HWMSDKConfMediaType 会议媒体类型。 confId NSString 会议id。 vmrConfId NSString vmr会议id。 isP2PConf BOOL 是否立即会议。 thirdUserId NSString 第三方用户账号。 表2 枚举HWMConfIncomingState说明 枚举值 描述 HWMConfIncomingStateStart 初始状态,来电振铃中。 HWMConfIncomingStateAccept 接听状态,已接听来电。 HWMConfIncomingStateReject 拒绝状态,已拒绝来电。 HWMConfIncomingStateTimeout 未响应状态,呼叫超时或者主叫已挂断。 表3 枚举HWMSDKConfMediaType说明 枚举值 描述 HWMSDKConfMediaTypeAudio 音频。 HWMSDKConfMediaTypeVideo 视频。
  • 70.8.5更新内容 由于原Android support库已不再被Google维护演进,将从28版本升级替换为AndroidX。 因此华为云会议从8月发布的70.8.5版本开始,将不再在support库基础上开发,而是替换为AndroidX进行迭代。 如果您仍在使用原Android support库依赖: 我们推荐您与我们一样更新替换使用新的AndroidX依赖,以免您在后续开发时无法正常对接我们采用AndroidX的SDK版本,相关文档请见快速入门; 如果您无法立即更新,我们会提供原有基于support库开发的SDK入口,并持续维护6个月。在维护期间,您仍可以集成我们的旧版SDK(70.7.5及之前版本)进行开发,我们会对于此类版本发现的问题进行修复与更新,但是之后迭代的新功能将只在AndroidX版本SDK上实现。 华为云会议期望给您带来更好的产品体验,如有问题,请拨打4000-955-988 | 950808 按1转1进行快速解答! 1.从此版本开始,Android SDK切换为AndroidX依赖,详细配置请见快速入门 2.支持获取与会者列表(含网络研讨会),详见获取与会者列表 父主题: 版本更新内容
  • 开启隐藏非视频与会者功能 示例代码 /// 开启显示隐藏非视频与会者选项 [[HWMBizSdk getBizOpenApi] enableSDKCapability:HWMSDKCapabilitySuportHideNoCameraView]; 开启后,在会议设置中可以看到隐藏非视频与会者选项: 示例代码 /// 关闭隐藏非视频与会者选项 [[HWMBizSdk getBizOpenApi] disableSDKCapability:HWMSDKCapabilitySuportHideNoCameraView]; 关闭后,会议设置不显示隐藏非视频与会者选项。
  • 开启共享声音功能 配置开启共享时包含电脑声音功能,调用enableSDKCapability接口 示例代码 /// 开启共享声音 [[HWMBizSdk getBizOpenApi] enableSDKCapability:HWMSDKCapabilitySuportShareAudio]; 配置开启共享时包含电脑声音功能后,用户发起共享时,在开始共享窗口会显示【共享时包含电脑声音】选项。若未配置开启该功能,则窗口上不显示该选项。如下图: 取消 App Sandbox 功能 SDK 自动安装音频驱动插件需要关闭 App Sandbox 功能,并获取 root 权限。 在 App 的 entitlements 描述文件中,删除 App Sandbox 条目。如下图: 取消 App Sandbox 功能后,首次点击勾选【共享时包含电脑声音】选项时,会获取 root 权限。在用户单击【好】后,开始自动安装音频驱动插件。如下图: 若未取消 App Sandbox 功能,首次点击勾选【共享时包含电脑声音】选项时,会弹框提示到官网下载。在用户单击【下载】后,会跳转到官网。如下图: 下载链接可通过initWithConfig接口中的appUrl字段配置,该接口用于启动并初始化SDK,参考初始化。若未配置appUrl,则不显示下载。 App Sandbox 功能取消后,App 内获取到的用户路径会发生变化,App 会无法上架到 Mac App Store。
  • enableSDKCapability 接口描述 用于开启特性支持。 方法定义 1 - (void)enableSDKCapability:(HWMSDKCapabilitySuport)type; 参数描述 表1 HWMSDKCapabilitySuport说明 参数 类型 描述 HWMSDKCapabilitySuportVideoHD NSUInteger 开启720P高清视频,默认360P。 HWMSDKCapabilitySuportShareAudio NSUInteger 开启显示共享时包含电脑声音选项,默认不开启。 HWMSDKCapabilitySuportHideNoCameraView NSUInteger 开启显示隐藏非视频与会者选项,默认开启。 HWMSDKCapabilitySuportBreakoutConf NSUInteger 开启分组会议,默认开启。 HWMSDKCapabilitySuportConfirmRecord NSUInteger 录制安全提示,默认不开启。
  • 参数描述 表1 枚举HwmUserCorpInfoNotifyType说明 参数 描述 HWM_USER_CORP_INFO_NOTIFY_TYPE_USER_DELETE 用户已注销。 HWM_USER_CORP_INFO_NOTIFY_TYPE_USER_JOIN_NEW_CORP 用户已加入新的企业(接受邀请、创建企业变成新企业的用户)。 HWM_USER_CORP_INFO_NOTIFY_TYPE_USER_LEAVE_CURRENT_CORP 用户已被移出当前企业(企业管理员删除、解散、用户主动离开企业变成注册用户)。 HWM_USER_CORP_INFO_NOTIFY_TYPE_USER_RESET 用户重置(Smartrooms账号被重置激活码或者账号被删除)。 HWM_USER_CORP_INFO_NOTIFY_TYPE_USER_VMR_CHANGE 用户vmr变化。 HWM_USER_CORP_INFO_NOTIFY_TYPE_USER_NAME_CHANGE 用户姓名变更。 HWM_USER_CORP_INFO_NOTIFY_TYPE_USER_STATUS_CHANGE 接入账号状态变化。
  • ConfigSettingWindow 接口描述 该接口用于自定义设置界面中各标签页和功能区的显示隐藏,若未进行设置,则默认都显示 图1 设置界面 注意事项 该接口必须在设置界面打开前调用,设置界面打开时调用不会即时生效。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode ConfigSettingWindow(const HwmSettingWindowConfig * configInfo); 回调函数 1 virtual void OnConfigSettingWindowResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 参数说明 参数 是否必须 类型 描述 configInfo 是 HwmSettingWindowConfig 设置窗口定制信息。 表2 结构体HwmSettingWindowConfig参数说明 参数 类型 描述 normalTab HwmNormalSettingTab 基本设置页定制信息。 videoTab HwmVideoSettingTab 视频设置页定制信息。 audioTab HwmAudioSettingTab 音频设置页定制信息。 screenTab HwmScreenSettingTab 屏幕设置页定制信息。 recordTab HwmRecordSettingTab 录制设置页定制信息。 virtualBackgroudTab HwmVirtualBackgroudSettingTab 虚拟背景设置页定制信息。 hotkeyTab HwmHotKeySettingTab 快捷键设置页定制信息 表3 结构体HwmNormalSettingTab参数说明 参数 类型 描述 isHide bool 是否隐藏。 callOrConfArea HwmSettingArea 会议呼叫设置区域定制信息。 chatNotifyArea HwmSettingArea 聊天消息提醒设置区域定制信息。 subtitleArea HwmSettingArea 字幕设置区域定制信息。 shareArea HwmSettingArea 共享设置区域定制信息 表4 结构体HwmVideoSettingTab参数说明 参数 类型 描述 isHide bool 是否隐藏。 cameraArea HwmSettingArea 摄像头设置区域定制信息。 videoViewArea HwmSettingArea 视频画面设置区域定制信息。 表5 结构体HwmAudioSettingTab参数说明 参数 类型 描述 isHide bool 是否隐藏。 micArea HwmSettingArea 麦克风设置区域定制信息。 spkArea HwmSettingArea 扬声器设置区域定制信息。 advancedArea HwmSettingArea 高级设置区域定制信息。 表6 结构体HwmScreenSettingTab参数说明 参数 类型 描述 isHide bool 是否隐藏。 dualScreenArea HwmSettingArea 双屏设置区域定制信息。 displayTopologyArea HwmSettingArea 显示器显示模式设置区域定制信息。 swapContentArea HwmSettingArea 切换显示内容设置区域定制信息。 表7 结构体HwmRecordSettingTab参数说明 参数 类型 描述 isHide bool 是否隐藏。 localRecordArea HwmSettingArea 本地录制设置区域定制信息。 表8 结构体HwmVirtualBackgroudSettingTab参数说明 参数 类型 描述 isHide bool 是否隐藏。 virtualBackgroudArea HwmSettingArea 虚拟背景设置区域定制信息。 表9 结构体HwmHotKeySettingTab参数说明 参数 类型 描述 isHide bool 是否隐藏。 hotkeyArea HwmSettingArea 快捷键设置区域定制信息。 表10 结构体HwmSettingArea参数说明 参数 类型 描述 isHide bool 是否隐藏。 返回值 表11 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * 定制设置界面 */ void demoConfigSettingWindowDlg::OnBnClickedOk() { hwmsdkagent::HwmSettingWindowConfig data{ 0 }; data.normalTab.isHide = true; data.videoTab.videoViewArea.isHide = true; int ret = hwmsdkagent::ConfigSettingWindow(&data); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("config setting window error")); return; } }
  • GetAudienceList 接口描述 该接口用于获取会议中观众列表。 注意事项 只能在会议中使用 观众身份(可以通过会议详情消息推送获取)不能使用此接口 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode GetAudienceList(); 回调函数 1 virtual void OnGetAudienceListResult(const HwmAttendeeInfo* audidenceList, unsigned int length)override {}; 参数描述 HWMAttendeeInfo参数说明
  • 返回结构参考 表1 Result 对象参数说明 key 类型 描述 retCode string 返回码 retMsg string 返回消息 data object 具体返回的对象,详见各个函数返回值的参数描述 表2 通知对象参数说明 key 类型 描述 retCode string 返回码 retMsg string 返回消息 data object 具体事件的返回数据, 详见各个事件的参数描述 表3 Error对象参数说明 key 类型 描述 retCode string 错误码 retMsg string 错误描述 data object 设置视图显示 和 会控操作 发生异常时,此字段非空,结构参考:表4 设置视图显示和会控操作的Error data参数说明 表4 设置视图显示和会控操作的Error data参数说明 key 类型 描述 key string 具体设置项的configName, 如audioMute,controlBarVisible等 retCode string 针对此key值设置发生异常时的错误码 retMsg string 针对此key值设置发生异常时的错误描述 父主题: 公共结构参考
  • 业务流程 接口调用 根据申请的App ID、Key,并获取Access Token参考: - 介绍:开发指南-App ID鉴权介绍; - 获取Access Token的REST接口: 执行App ID鉴权; 以获取到的Access Token作为SDK的joinConf接口的入参(注意参数名为:token)。 只能通过后台调用REST接口获取Access Token,不能在浏览器前台调用该接口,否则会出现CORS错误。 处理回调函数 处理回调函数join_conf_result。
  • 开发环境准备 在开发的过程中请满足如下环境要求。 表1 环境要求 环境和工具名称 版本要求 说明 操作系统 见表2 硬件要求: CPU:i5-2400四核 3.1GHz及以上。 内存:4GB及以上。 浏览器 见表2 - TypeScript 如果客户端用TypeScript开发,TypeScript的版本不低于3.8.3。 - 华为云会议资源 - 开通方法请参见“开发前准备”。 App ID申请 - App ID的介绍及申请请参考“App ID鉴权介绍”。 表2 浏览器支持 OS Windows Mac Android iOS 14.3+ 浏览器版本 Chrome 73+ Safari 13+,Chrome 73+ 手机微信浏览器(Wechat 8.0+) 手机微信浏览器(Wechat 8.0+) 视频(查看) √ √ √ √ 摄像头 √ √ √ √ 麦克风 √ √ √ √ 扬声器 √ √ √ √ 屏幕共享(查看) √ √ √ √ 屏幕共享(发起) √ √ × ×
  • 操作步骤 下载SDK和Demo源码 按照“SDK下载”章节,下载SDK的ZIP包。 解压ZIP包,得到如下文件及目录。 图1 SDK包的目录结构 下载Web SDK Demo依赖的第三方库 由于Web SDK Demo中引入了4个第三方库文件,请提前下载,并放在与HWMeeting.js同一目录下。如下图所示: 图2 下载依赖的第三方库文件 这4个文件的建议下载地址如下: https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.development.js https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.development.js https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.3/moment.min.js https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.3/css/bulma.min.css 如果由于某些原因,上述地址无法访问,请自行搜索下载。 使用Visual Studio Code打开文件 图3 打开文件夹 指定端口启动本地调试 此步骤前提是已经安装Node.js 在命令行上执行如下命令安装http-server 1 npm install http-server -g 命令行进入meeting-demo.html所在路径,指定端口号启动http-server 1 http-server . -p 8000 图4 启动成功 在Google Chrome浏览器中打开 访问地址:http://localhost:8000/meeting-demo.html 注意:此处访问使用localhost作为域名,而没有使用编译器中的IP,原因是Chrome 47以后,getUserMedia API只能允许来自“安全可信”的客户端的视频音频请求,如https和本地的localhost。如果页面的脚本从一个非安全源加载,Chrome会抛出错误。 使用Demo入会 浏览器Demo展示如下图: 图5 Web Demo启动后界面 使用华为云会议创建一个会议/网络研讨会后, 可以使用会议ID和密码,匿名入会; 也可以通过“执行App ID鉴权”,一键获取token,然后实名入会。 图6 Web Demo会中界面
  • 环境要求 在Web SDK Demo的编译运行过程中请满足如下环境要求。 表1 环境要求 环境和工具名称 版本要求 说明 操作系统 Windows 10专业版 硬件要求: CPU:i5-2400四核 3.1GHz及以上 内存:4GB及以上 Visual Studio Code NA NA Node.js 14.x NA http-server 0.12.3 NA 测试资源及App ID申请 NA 请参见“开发前准备”。
  • 修订记录 表1 修订记录 日期 版本 修订内容 2024-10-11 1.0.15 支持邀请与会者入会 切换到后台后是否允许麦克风收音 2024-07-12 1.0.13 支持设置打点日志上传开关 2024-05-17 1.0.12 支持开启外邀第三方能力 移动端会中支持查看会议信息 2023-12-19 1.0.11 支持手机版 Android的微信浏览器和手机版 iOS的微信浏览器 RTP支持TCP 2023-07-06 1.0.10 支持同声传译(加入不同语言房间) 支持被邀打开摄像头、麦克风,共享 解决与会者列表中可能出现两个相同用户的问题 2023-01-06 1.0.9 解决MacOS13 Safari共享兼容性问题 2022-11-05 1.0.8 增加设置离会跳转链接 增加设置停止录制提示语 解决与新版本软终端配合兼容性问题 2022-06-29 1.0.7 解决chrome 103版本共享兼容性问题 2022-05-05 1.0.6 增加setLang接口,首次商用发布 2021-08-31 1.0.1 增加npm安装方式 2021-07-31 1.0.0 首次公测发布 父主题: Web SDK
  • 常见错误码 表1 常见错误码对照表 值 描述 68 网络不佳,发起/加入会议超时 91 会议不存在或者无权限访问 95 会议不允许提前入会,请联系主持人 103 会议不允许提前入会,请联系主持人 112 会议已结束 836 网络中断,呼叫已断开 837 呼叫已断开,无码流挂断 838 您已被主持人移出会议(主持人挂断) 839 结束会议挂断 11070005 会议不存在 11070009 会议鉴权信息校验失败 11071005 会议时间与下一个预定的会议冲突,如需继续请联系云会议室的管理员预约 11071014 会议开始时长超出最大可预定时间范围 11071025 请检查与会人手机号是否正确 11071067 当前会议正在召开,无法取消 11071073 您呼叫的会议不允许匿名用户呼入,请联系会议预订者 11071074 您呼叫的会议只允许企业内用户呼入,请联系会议预订者 11071075 您呼叫的会议只允许被邀请用户呼入,请联系会议预订者 11072031 请检查与会人手机号是否为空 11072033 请检查与会人入会号码是否正确 11072050 会议已经被锁定 11076003 云会议室同时在线人数已达上限,请联系会议主持人或管理员 11081006 密码错误,请重新输入 115022001 Enterprise concurrency resource not enough:企业并发资源不足 父主题: 错误码参考
  • SetShareAudio 接口描述 该接口用于设置共享时是否包含电脑声音开关。 注意事项 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回 方法定义 HWM_SDK_AGENT_API hwmsdk::HwmErrCode SetShareAudio(bool isEnable); 回调函数 1 virtual void OnSetShareAudioResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 参数说明 参数 是否必须 类型 描述 isEnable 是 bool 是否开启功能开关。 返回值 表2 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 /** * 设置共享音频 */ void demoSetShareAudioDlg::OnBnClickedButtonSetShareAudio() { bool isEnable = true; int ret = hwmsdkagent::SetShareAudio(isEnable); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("Set Share Audio Result failed")); } }
  • SetShareStrategy 接口描述 该接口用于设置屏幕共享的策略是清晰度优先还是流畅度优先。 注意事项 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 HWM_SDK_AGENT_API hwmsdk::HwmErrCode SetShareStrategy(HwmShareStrategyType shareStrategyType); 回调函数 1 virtual void OnSetShareStrategyResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 参数说明 参数 是否必须 类型 描述 shareStrategyType 是 HwmShareStrategyType 屏幕共享策略类型枚举。 表2 枚举HwmShareStrategyType 说明 枚举值 描述 HWM_SHARE_STRATEGY_DEFINITION_FIRST 清晰度优先 HWM_SHARE_STRATEGY_FLUENCY_FIRST 流畅度优先 返回值 表3 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 /** * 设置共享策略 */ void demoSetShareStrategyDlg::OnBnClickedButtonSetShareStrategy() { hwmsdkagent::HwmShareStrategyType type = HWM_SHARE_STRATEGY_DEFINITION_FIRST; int ret = hwmsdkagent::SetShareStrategy(type); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("Set Share Strategy Result failed")); } }
  • CancelCycleConf 接口描述 该接口用于取消至少还有一场子会议未开始的周期会议。 注意事项 该接口在登录状态下才能调用。 最后一场子会议未开始前可以调用接口,开始后调用则无效。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode CancelCycleConf(const HwmCancelCycleConfParam *cancelCycleConfParam); 回调函数 1 virtual void OnCancelCycleConfResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 结构体HwmCancelCycleConfParam参数说明 参数 是否必须 类型 描述 confId 是 char[] 会议id endOnlineConf 是 bool 是否需要结束在线会议 示例代码 1 2 3 4 5 6 7 8 9 10 /** * 取消周期会议接口 */ int demoConfListDlg::OnBnCancelCycleConf() { hwmsdkagent::HwmCancelCycleConfParam cancelCycleConfParam{}; strcpy_s(cancelCycleConfParam.confId, sizeof(cancelCycleConfParam.confId), GetConfId().c_str()); cancelCycleConfParam.endOnlineConf = true; return hwmsdkagent::CancelCycleConf(cancelCycleConfParam); }
  • cancelSubCycleConf 接口描述 该接口用于取消未开始的周期子会议。 注意事项 该接口在登录状态下才能调用。 子会议未开始前可以调用接口,开始后调用则无效。 方法定义 1 - (void)cancelSubCycleConf:(HWMSDKCancelSubCycleConfParamModel *_Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback 参数描述 表1 HWMSDKCancelSubCycleConfParamModel参数说明 参数 是否必须 类型 描述 confId 是 NSString * 会议id subConfID 是 NSString * 子会议id endOnlineConf 是 BOOL 是否需要结束在线会议 示例代码 1 2 3 4 5 6 7 8 9 10 11 /// 取消周期子会议 - (void)confirmCancelSubConf { HWMSDKCancelSubCycleConfParamModel *cancelParma = [[HWMSDKCancelSubCycleConfParamModel alloc] init]; cancelParma.confId = confId; cancelParma.subConfID = subConfID; cancelParma.endOnlineConf = YES; [[HWMBizSdk getBizOpenApi] cancelSubCycleConf:cancelParma callback:^(NSError * _Nullable error, id _Nullable result) { NSString *tips = !error ? @"取消会议成功" : @"取消会议失败"; NSLog(@"%@",tips); }]; }
  • ModifyCycleConf 接口描述 该接口用于编辑周期会议。 注意事项 该接口在已登录状态下才能调用。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 所有字段必填,编辑修改的字段可来源于用户输入,其他不想修改的属性一定要取会议详情对应字段来赋值。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode ModifyCycleConf(const HwmModifyCycleConfParam *modifyParam); 回调函数 1 virtual void OnModifyCycleConfResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 结构体HwmModifyCycleConfParam参数说明 参数 是否必须 类型 描述 editConfParam 是 HwmEditConfParam 编辑会议参数 cycleParam 是 HwmCycleConfParam 周期会议参数 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 /** * 编辑周期会议接口 */ int demoEditConfDlg::ModifyCycleConf() { hwmsdkagent::HwmConfDetail confDetail{}; //从缓存中得到会议详情数据赋予confDetail hwmsdkagent::HwmEditConfParam editConfParam{}; //根据实际需求拷贝confDetail的数据 strncpy_s(editConfParam.confId, confDetail.confListInfo.confId, HWM_MAX_CONF_ID_LEN); editConfParam.vmrFlag = confDetail.vmrFlag; strncpy_s(editConfParam.vmrId, confInfo.vmrId, HWM_MAX_VMR_CONF_ID_LEN); //此处省略部分赋值代码 editConfParam.timeZone = 56; // 本地时区,用户依据自身情况自己调整,56东八区 editConfParam.isRecordOn = false; editConfParam.isAutoRecordOn = false; editConfParam.startTime = 1633017600; //utc时间戳 editConfParam.duration = 0 * 60 + 30;//会议时长 editConfParam.joinConfRestrictionType = hwmsdkagent::HwmJoinConfPermissionType::RESTRICTION_CALL_IN_ALL; //取编辑会议上面的允许入会用户类型 // vmrConferenceId非空是固定ID,为空则是随机id editConfParam.vmrConfIdType = (strlen(confInfo.confListInfo.vmrConferenceId) != 0) ? hwmsdkagent::HwmVmrConfIdType::HWM_VMR_CONF_ID_TYPE_FIXED : hwmsdkagent::HwmVmrConfIdType::HWM_VMR_CONF_ID_TYPE_RANDOM; editConfParam.allowGuestStartConf = false; editConfParam.allowGuestStartConfTime = 0; hwmsdkagent::HwmCycleConfParam cycleConfParam{}; cycleConfParam.startDate = 1633017600; //utc时间戳,单位秒,如果获取的时间是本地时间,需要转换成utc时间 cycleConfParam.endDate = 1636560000; //utc时间戳,单位秒,如果获取的时间是本地时间,需要转换成utc时间 cycleConfParam.cycleType = 1; strcpy_s(cycleConfParam.listPoints, sizeof(cycleConfParam.listPoints), "5"); // 星期五 cycleConfParam.preRemindDays = 1; cycleConfParam.interval = 1; hwmsdkagent::HwmModifyCycleConfParam editCycleConfParam{}; editCycleConfParam.editConfParam = editConfParam; editCycleConfParam.cycleParam = cycleConfParam; return hwmsdkagent::ModifyCycleConf(&editCycleConfParam); }
共100000条