华为云用户手册

  • 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 接口描述 用于开启特性支持。 方法定义 1 - (void)enableSDKCapability:(HWMSDKCapabilitySuport)type; 参数描述 表1 HWMSDKCapabilitySuport说明 参数 类型 描述 HWMSDKCapabilitySuportVideoHD NSUInteger 开启720P高清视频,默认360P。 HWMSDKCapabilitySuportShareAudio NSUInteger 开启显示共享时包含电脑声音选项,默认不开启。 HWMSDKCapabilitySuportHideNoCameraView NSUInteger 开启显示隐藏非视频与会者选项,默认开启。 HWMSDKCapabilitySuportBreakoutConf NSUInteger 开启分组会议,默认开启。 HWMSDKCapabilitySuportConfirmRecord NSUInteger 录制安全提示,默认不开启。
  • 开启共享声音功能 配置开启共享时包含电脑声音功能,调用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。
  • 参数描述 表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_SUC CES S != 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。
  • 操作步骤 下载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 常见错误码对照表 值 描述 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); }
  • bookCycleConf 接口描述 该接口用于预约周期会议。 注意事项 不在登录状态下,不应调用该接口。 会议开始时间必须晚于当前时间,会议时长应大于15分钟。 个人会议或者云会议室的时候要传入vmrId。 携带与会者入会的时候需要传入attendees。 周期会议最大跨度一年,会议数量不超过50,超过则只预约前50个会议 callback中的result返回会议详情信息(HWMConfDetail) 方法定义 1 - (void)bookCycleConf:(HWMBookCycleConfParam *_Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 表1 HWMBookCycleConfParam参数说明 参数 是否必传 类型 描述 confParam 是 HWMOrderConfParam 预约会议参数 cycleConfParam 是 HWMCycleConfParam 周期子会议参数 表2 HWMCycleConfParam参数说明 参数 是否必须 类型 描述 startDate 是 NSTimeInterval 开始日期-时间戳,精度秒(0时区) endDate 是 NSTimeInterval 结束日期-时间戳,精度秒(0时区) cycleMode 是 HWMCycleMode 周期类型 interval 是 NSUInteger 周期区间。 1、周期类型选择了按天,表示每几天召开一次,取值范围[1,15]; 2、周期类型选择了Week,表示每几周召开一次,取值范围[1,5]; 3、周期类型选择了Month,interval表示隔几月,取值范围[1,3] listPoints 是 NSString * 周期内的会议召开点。仅当按周和月时有效。数据格式(中间用逗号隔开):1,3,5,7 preRemindDays 是 NSUInteger 周期子会议提前通知天数。 表3 枚举HWMCycleMode说明 值 说明 HWMCycleModeDay 以天为周期 HWMCycleModeWeek 以周为周期 HWMCycleModeMonth 以月为周期 示例代码 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 /// 预约周期会议 - (void)bookCycleConf{ HWMOrderConfParam * orderConfParam = [[HWMOrderConfParam alloc] init]; orderConfParam.confSubject = @"我的预约会议"; orderConfParam.isAutoRecord = YES; orderConfParam.startTime = 1633017600; //utc时间戳,单位秒,如果获取的时间是本地时间,需要转换成utc时间 orderConfParam.duration = 30; //会议持续时长(分钟) orderConfParam.timeZone = 56; orderConfParam.callInRestrictionType = HWMCallRestrictionAll; HWMAttendeeInfo * attendeeInfo = [[HWMAttendeeInfo alloc] init]; attendeeInfo.name = @"Mike"; attendeeInfo.number = @"+991116003543"; attendeeInfo.isMute = YES; orderConfParam.attendee = @[attendeeInfo]; HWMCycleConfParamModel * cycleConfParamModel = [[HWMCycleConfParamModel alloc] init]; cycleConfParamModel.startDate = 1633017600; //utc时间戳,单位秒,如果获取的时间是本地时间,需要转换成utc时间; cycleConfParamModel.endDate = 1636560000; cycleConfParamModel.cycleType = HWMSDKCycleTypeWeek; cycleConfParamModel.preRemindDays = 1; HWMBookCycleConfParam *param = [[HWMBookCycleConfParam alloc] init]; param.confParam = orderConfParam; param.cycleConfParam = cycleConfParamModel; [[HWMBizSdk getBizOpenApi] bookCycleConf:param callback:^(NSError * _Nullable error, id _Nullable result) { if (!error) { NSLog(@"book cycle conf success"); }else{ NSLog(@"book cycle conf fail errorCode : %zd",error.code); } }]; }
  • cancelCycleConfWithParam 接口描述 该接口用于取消至少还有一场子会议未开始的周期会议。 注意事项 该接口在登录状态下才能调用。 最后一场子会议未开始前可以调用接口,开始后调用则无效。 方法定义 1 - (void)cancelCycleConfWithParam:(HWMSDKCancelCycleConfParamModel *_Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 表1 HWMSDKCancelCycleConfParamModel参数说明 参数 是否必须 类型 描述 confId 是 NSString * 会议id endOnlineConf 是 BOOL 是否需要结束在线会议 示例代码 1 2 3 4 5 6 7 8 9 10 /// 取消周期会议 - (void)cancelCycleConf { HWMSDKCancelCycleConfParamModel *cancelParam = [[HWMSDKCancelCycleConfParamModel alloc] init]; cancelParam.confId = "989156631"; cancelParam.endOnlineConf = YES; [[HWMBizSdk getBizOpenApi] cancelCycleConfWithParam:cancelParam callback:^(NSError * _Nullable error, id _Nullable result) { NSString *tips = !error ? @"取消周期会议成功" : @"取消周期会议失败"; [UIUtil showMessage:tips error:error]; }]; }
  • showMeetingWindow 接口描述 当会议主窗口处于最小化或者被其他窗口覆盖时,使用该接口将会议主窗口拉到最上层。一般用于从会议列表中拉起正在进行的会议窗口。 注意事项 无 方法定义 HWM_SDK_AGENT_API hwmsdk::HwmErrCode ShowMeetingWindow(); 参数描述 无 返回值 表1 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 /** * 显示会议主窗口 */ void demoSettingDlg::OnBnClickedButtonShowMeetingWindow() { int ret = hwmsdkagent::ShowMeetingWindow(); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox("ShowMeetingWindow error" ); } }
  • 账号相关名词 华为云账号 华为云上的租户身份标志,用于在华为云上购买华为云会议服务,或者使用华为云提供的工具(如 API Explorer 等)。账号鉴权在华为云的 IAM 上完成。 华为云会议账号 华为云会议上的用户身份标志。账号鉴权在华为云会议的USG上完成。华为云会议账号分为3类: 华为云会议SP账号 华为云会议SP账号,用于多租户场景下SP管理员对多个企业的管理,包括企业发放、企业资源分配等。 华为云会议企业管理员账号 华为云会议企业管理员账号,用于企业管理员对企业的管理,包括企业部门管理、通讯录管理、云会议室管理等。 华为云会议普通用户账号 华为云会议普通账号,用于会议用户登录App(或者个人Portal)、创建会议、加入会议等。 父主题: 专有名词解释
  • AVDeviceCtrl 接口描述 该接口用于控制本地麦克风、扬声器和摄像头开关。 注意事项 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回 方法定义 HWM_SDK_AGENT_API hwmsdk::HwmErrCode AVDeviceCtrl(HwmDeviceType deviceType, bool isOpen); 回调函数 1 virtual void OnAVDeviceCtrlResult(hwmsdk::HwmErrCode ret, const char* reason, HwmDeviceType deviceType) {}; 参数描述 表1 参数说明 参数 是否必须 类型 描述 HwmDeviceType 是 HwmDeviceType 设备类型枚举。 isOpen 是 bool 是否开启设备。 表2 枚举HwmDeviceType 说明 枚举值 描述 HWM_DEVICE_TYPE_MIC 麦克风设备 HWM_DEVICE_TYPE_SPEAKER 扬声器设备 HWM_DEVICE_TYPE_CAMERA 视频设备 返回值 表3 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 /** * 音视频设备控制 */ int demoAVDeviceCtrlDlg::ClickAVDeviceCtrl() { hwmsdkagent::HwmDeviceType deviceType = hwmsdkagent::HwmDeviceType::HWM_DEVICE_TYPE_MIC; bool isOpen = true; int ret = hwmsdkagent::AVDeviceCtrl(deviceType, isOpen); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("AVDeviceCtrl error")); } }
  • UpdateCustomButtonInfo 接口描述 会中刷新自定义按钮相关的配置,支持底部工具栏和共享工具栏。 注意事项 有调用Config接口并希望在会中刷新自定义按钮配置。 只对Config中已配置的自定按钮生效。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode UpdateCustomButtonInfo(const HwmCustomButtonInfo *btnInfo);
  • 移动端无法发起桌面共享 针对免费企业的用户,移动端SDK默认不支持发起桌面共享,发起共享时提示如下: 图1 移动端App无法发起共享的提示 如果免费企业的用户需要在移动端端发起桌面共享,请单独申请: 华为云账号完成企业实名认证 请参考:“企业实名认证”。 图2 进入账号中心 图3 企业实名认证入口 联系华为销售人员或者400客服开通免费企业的移动端桌面共享 申请开通时请提供如下的企业实名认证截图: 图4 企业实名认证 父主题: 常见问题
  • setAudioRawDataOutputConfig 接口描述 该接口用于获取音频数据流。 注意事项 调用该接口且传入参数为YES时,实际业务处理结果会在对应的通知(音频数据流)中返回。 在初始化后就可以调用此接口,创建或加入会议后就会有通知。 方法定义 - (void)setAudioRawDataOutputConfig:(BOOL)enable; 参数描述 传入YES为开启,NO为不开启,默认为不开启。 返回值 无 示例代码 [[HWMBizSdk getBizOpenApi] setAudioRawDataOutputConfig:YES];
  • 参数描述 表1 参数说明 参数 类型 描述 pFrame HWMAudioFrameDataModel * 音频流信息 表2 HWMAudioFrameDataModel 说明 参数 类型 描述 iSamples NSInteger 每个声道的采样点数,iSamples=iSamplesPerSec * 10ms /1000 iSamplesPerSec NSInteger 采样率 iBytesPerSample NSInteger 每个采样点的字节数,pcm数据一般16bit iChannels NSInteger 声道数 pBuffer NSData 数据缓冲区,长度=iSamples*iBytesPerSample*iChannels uiDataLen NSInteger 编码后或解码前使用该字段表示数据长度,加解密处理后需更新此字段值 eFrameType HWMAudioRowDataFrameType 音频帧类型 表3 枚举HWMAudioRowDataFrameType说明 枚举值 描述 HWMAudioRowDataFrameTypePcm16 = 0 Pcm16
共100000条