华为云用户手册

  • 70.16.5更新内容 1.新增周期会议相关接口,接口详见预约周期会议,编辑周期会议,取消周期会议,编辑周期子会议,取消周期子会议 2.加入会议接口HwmJoinConfByIdInfo参数新增字段:isStopConflictConf强制结束和当前VMR会议资源冲突的会议,接口详见加入会议 3.Config接口配置自定义按钮,支持增加二级菜单,接口详见界面配置 4.新增错误码,详见常见错误码 5.Config接口菜单按钮新增 共享画面质量策略:清晰度优先、流畅度优先 "share_strategy"、共享时隐藏视频窗口"share_hide_video"、共享时包含电脑声音"share_audio"配置可隐藏。复制会议信息"copy_conf_info"按钮支持配置可注入,详见界面配置和HwmClickInjectBtn说明 6.会议角色HwmConfRole新增枚举值HWM_CONF_ROLE_AUDIENCE观众,HWM_CONF_ROLE_COHOST联席主持人和HWM_CONF_ROLE_WAITING等候室成员,详见HwmConfRole说明 父主题: 版本更新内容
  • 自定义会控按钮 自定义新增按钮。底部工具栏按钮、共享工具栏和更多菜单中的按钮支持第三方开发者自定义添加。目前底部工具栏和共享工具栏限制自定义按钮个数为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": [ ] } } } } 父主题: 界面定制
  • 70.16.5更新内容 新增周期会议相关接口,具体请见预约周期会议、编辑周期会议、取消周期会议、编辑周期子会议、取消周期子会议 新增设置网络模式接口,具体请见网络模式设置 新增音频共享,具体请见SampleHandler文件修改 id入会HWMJoinConfParam.h 新增字段isStopConflictConf,具体请见HWMJoinConfParam参数说明 初始化SDK(HWMOpenSDKConfig)新增字段(disableIncomingLocalNotification)会议来电时禁止使用本地推送,具体请见初始化信息HWMOpenSDKConfig sso 登录接口调整,具体请见loginBySSO: 错误码整改,新版本错误码描述请见 新旧版本错误码对应关系 表1 新旧版本错误码对应关系 70.14.6 版本及之前的错误码 70.16.5 版本之后的错误码 新版本错误描述 1002 430400007 The guest password illegal.:来宾密码非 1004 430400002 Time zone error.:时区错误 1005 430400003 The meeting duration is less than 1.:会议时长小于1 1006 430400004 Joining the conference is interrupted.:入会被中断 父主题: 版本更新内容
  • setNetworkModeWithAccessType 接口描述 如华为云会议的媒体节点下沉部署到企业,并且管理节点也是通过企业内的代理访问,需要将网络模式设置成“企业内网接入”。 企业内的App无法直接访问公网(即媒体节点下沉和管理节点代理下沉场景)的情况下才需要调用该接口。 注意事项 该接口非必需调用,若不设置,则使用默认模式。 该接口仅支持 macOS 10.13 及以上版本。 方法定义 /// 设置网络模式 + (void)setNetworkModeWithAccessType:(HWMAccessType)accessType API_AVAILABLE(macos(10.13)); 参数描述 表1 参数说明 参数 是否必须 类型 描述 accessType 是 HWMAccessType 网络接入类型 表2 枚举HWMAccessType参数说明 枚举值 描述 HWMAccessTypeAuto 默认值。 HWMAccessTypeInner 公司内网接入,用于媒体和信令下沉场景,app从内网接入,信令/媒体消息走代理服务器才能访问云会议服务端。 HWMAccessTypeOuter 公司外网接入,用于非媒体和信令下沉场景,互联网接入,信令/媒体消息可以直接访问云会议服务端。 示例代码 /** * 设置网络模式 */ [HWMSdk setNetworkModeWithAccessType:HWMAccessTypeInner];
  • 70.14.5更新内容 预约、编辑会议支持设置“来宾在主持人之前加入会议”,并可设置提前入会时间(allowGuestStartConf、allowGuestStartConfTime),具体参数请见 HWMOrderConfParam参数说明 。 预约云会议室时支持选择预约固定云会议室ID或随机云会议室ID,具体请见 VmrIdType枚举说明。 APPID登录支持指定部门ID,具体请见 AppIdAuthParam参数说明。 父主题: 版本更新内容
  • 70.14.5更新内容 1. 预约云会议室时支持选择预约固定云会议室ID或随机云会议室ID,具体请见 HWMVmrConfIdType说明。 3. 预约、编辑会议支持设置“来宾在主持人之前加入会议”,并可设置提前入会时间(allowGuestStartConf、allowGuestStartConfTime),具体参数请见 HWMOrderConfParam参数说明 。 4. APPID登录支持指定部门ID,具体请见 HWMAppIDLoginParam参数说明。 5. 新增设置网络模式接口,具体请见网络模式设置 父主题: 版本更新内容
  • 参数描述 表1 参数说明 参数 类型 描述 confIncomingInfo HWMSDKConfIncomingInfoModel 会议详情 表2 HWMSDKConfIncomingInfoModel参数说明 参数 类型 描述 subject NSString * 会议标题 confId NSString * 会议ID confMediaType HWMConfMediaType 媒体类型 vmrConfId NSString * vmr会议id thirdUserId NSString * 第三方用户账号。 表3 枚举HWMConfMediaType说明 枚举 值 说明 HWMConfMediaTypeAudio 0 音频会议 HWMConfMediaTypeVideo 1 视频会议
  • 70.13.5更新内容 1. 登录、登出接口新增uuid、account、thirdAccount字段,具体请见LoginResult类型说明、LogoutResult类型说明。如果是老版本升级到70.13.5版本,需要修改回调函数的定义。 2. 第三方视频推流接口支持MMR会议,具体请见第三方视频推流。 3. 业务 消息通知 中新增onConfIncoming接口,允许在入会前获取来电信息,具体请见业务消息通知。 4. 问题修复 父主题: 版本更新内容
  • windows平台编译.node文件时遇Could not find any Visual Studio installation to use的错误提示 客户案例: windows平台,在编译.node文件时提示Could not find any Visual Studio installation to use。 原因分析: Visual Studio没安装好或者环境变量GYP_MSVS_VERSION和安装的Visual Studio版本不配套 解决方案: 重新安装Visual Studio或者修改环境变量GYP_MSVS_VERSION为对应的Visual Studio的版本 父主题: Electron SDK
  • mac平台环境安装时遇permission denied的错误提示 客户案例: 某客户集成了会议Electron Sdk,在安装所需环境时提示permission denied。 原因分析: 文件权限问题。 解决方案: 使用chmod命令修改对应报错文件的权限,如:chmod 777 XXX;或者在安装对应依赖包时添加参数:--unsafe-perm=true --allow-root, 如 npm install -electron@13.6.7 –g --unsafe-perm=true --allow-root 父主题: Electron SDK
  • 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 通过会议ID和Random加入会议 async goToJoinConfByRandom(){ let { confId, random, nickName, isSpeakerOff, isMicOn, isCameraOn } = this.state; let param = { confId: "988148352", random: "c4f92bc34e685bbba6c23589741be0431997f30da5d6e47b", nickName: "杭州会场", isSpeakerOff: false, // 入会后默认扬声器不关闭 isMicOn: true, // 入会后默认麦克风打开 isCameraOn: false, // 入会后默认摄像头关闭 } const apiService = new ApiService(); let setResult = await apiService.joinConfByRandom(param); if(setResult.ret != 0){ window.electron.ipcRenderer.send("show-error-alert", "joinConfByRandom error = " + setResult.ret); } }
  • 描述 通过邮件会议通知中的会议链接入会时(会议链接如:https://bmeeting.huaweicloud.com/#/j/981924330/e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659),链接里面的是会议ID(即举例中的981924330)和会议的Random码(即举例中的e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659)。 在华为云会议账号登录后或者登录前,都可以使用该接口通过分享会议链接中的会议ID和48位密码映射值Random加入会议。
  • 业务流程 使用SDK加入已经存在的会议时,先调用joinConfByRandom接口,然后处理接口回调函数onJoinConfByRandomResult和订阅的消息通知onConfStateChanged、onConfInfoNotify 接口调用 组装数据结构JoinConfByRandomInfo和回调函数onJoinConfByRandomResult。 调用joinConfByRandom开始入会,第1步中的数据作为参数。 处理回调函数 处理回调函数onJoinConfByRandomResult。 处理消息通知 处理消息通知onConfStateChanged。 处理消息通知 处理消息通知onConfInfoNotify。
  • 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /** *初始化接口,拉起应用 */ async goToInit() { let param = { exePath: "E:\\Hello_World\\debug\\win32\\HwmSdk\\MySdk.exe",// 只有windows 64位平台需要设置sdk路径,假设HwmSdk目录在E:\\Hello_World\\debug\\win32\\,假设exe文件名称为MySdk.exe(路径需要utf8编码) logPath: "E:\\Hello_World\\debug\\win32\\MySdk\\log\\",// 指定日志路径(路径需要utf8编码) userDataPath: "E:\\Hello_World\\debug\\win32\\MySdk\\UserData\\", // 指定数据路径(路径需要utf8编码) appId: getAppId() }; const apiService = new ApiService(); let setResult = await apiService.init(param); if (setResult != 0) { window.electron.ipcRenderer.send("show-error-alert", "init error = " + setResult.ret); } } 1 2 3 4 5 6 7 8 9 /** * ApiService中init定义 */ init(initInfo) { console.log("init, in param = ", initInfo); let ret = this.uisdkService.init(initInfo); console.log("init, out data = ", ret); return ret; } 典型场景和接口参考中的示例代码仅作为示例用的伪代码,不能直接使用。
  • 业务流程 SDK初始化时,如果是windows 64位平台,先修改HwmSdk文件夹下HwmSdk.exe文件的名称,其他平台不涉及;再调用init同步接口。 修改exe文件名称(仅针对windows 64位平台,其他平台不涉及) 修改HwmSdk文件夹下HwmSdk.exe文件名称为MySdk.exe。 接口调用 构建数据结构InitInfo。 调用Init接口,完成配置初始化,第1步中的数据作为参数。
  • 业务流程 使用SDK加入已经存在的会议时,先调用joinConfById接口,然后处理接口回调函数onJoinConfByIdResult和订阅的消息通知onConfStateChanged、onConfInfoNotify。 接口调用 组装数据结构JoinConfByIdInfo和接口回调函数onJoinConfByIdResult。 调用joinConfById接口,第1步中的数据作为参数。 处理回调函数 处理回调函数onJoinConfByIdResult。 处理消息通知 处理消息通知onConfStateChanged。 处理消息通知 处理消息通知onConfInfoNotify。
  • 典型场景接口的调用顺序及生命周期 图1 典型场景接口调用时序图 1、一般应用升级前需要结束进程,为了便于升级管理,如果是windows 64位平台,初始化之前请修改HwmSdk文件夹下HwmSdk.exe文件的名称为用户自己的名称。(仅针对windows 64位平台,其他平台不涉及) 2、登录不是必须的步骤,在不登录的情况下也能通过会议ID和密码加入已经创建好的会议。 3、离开会议、结束会议等接口,当前SDK的UI上已经提供了对应的功能,如果第三方的App不需要程序控制这些功能则无需调用对应接口。 4、会议开始后,订阅的会议信息onConfInfoNotify通知会上报多次。
  • 3类接口描述 Electron SDK的接口分为主动调用同步接口、主动调用异步接口、订阅消息通知接口。 主动调用同步接口:App主动调用SDK的接口,用于完成某项任务。比如初始化接口Init。 主动调用异步接口:App主动调用接口和SDK内部任务处理采用异步处理方式,所有SDK某项任务处理完成后,以接口回调的方式通知App。比如创建会议接口,入参包含创会需要的参数和创会的结果回调onCreateConfResult。 订阅消息通知接口:由华为云会议服务端触发或SDK内部触发的事件通知,调用对应的订阅接口后,SDK以消息通知接口的形式通知给App。比如订阅会议列表通知接口setOnConfListChangedCB。
  • 业务流程 使用SDK实现“邀请”功能时,在SDK初始化完成后先调用config接口,然后处理接口回调函数onConfigResult。会议中,在“邀请”按钮单击后,再处理订阅的消息通知onClickInjectBtnNotify。 接口调用 组装包含配置信息的字符串和接口回调函数onConfigResult。 调用config接口,第1步中的数据作为参数。 处理回调函数 处理回调函数onConfigResult。 处理消息通知 当“邀请”按钮单击后,再处理订阅的消息通知onClickInjectBtnNotify
  • 70.16.5更新内容 新增周期会议相关接口,具体请见预约周期会议、编辑周期会议、取消周期会议、编辑周期子会议、取消周期子会议。 id入会HWMJoinConfParam.h 新增字段isStopConflictConf,具体请见HWMJoinConfParam参数说明。 sso 登录接口调整,具体请见loginBySSO:。 错误码整改,新版本错误码描述请见 新旧版本错误码对应关系 表1 新旧版本错误码对应关系 70.14.6 版本及之前的错误码 70.16.5 版本之后的错误码 新版本错误描述 40117 430400007 The guest password illegal.:来宾密码非法 40017 430400001 The calling number, account number or third-party account number cannot be empty.:呼叫号码、账号或者第三方账号不能为空 父主题: 版本更新内容
  • bookCycleConf 接口描述 该接口用于预约周期会议。 注意事项 不在登录状态下,不应调用该接口。 会议开始时间必须晚于当前时间,会议时长应大于15分钟。 个人会议或者云会议室的时候要传入vmrId。 携带与会者入会的时候需要传入attendees。 周期会议最大跨度一年,会议数量不超过50,超过则只预约前50个会议callback中的result返回会议详情信息(HWMConfDetail类型说明) 方法定义 1 - (void)bookCycleConf:(HWMOrderCycleConfParam *_Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback 参数描述 表1 HWMOrderCycleConfParam参数说明 参数 是否必须 类型 描述 orderConfParam 是 HWMOrderConfParam 普通会议参数 cycleParam 是 HWMSDKCycleConfParamModel 周期会议参数 表2 HWMSDKCycleConfParamModel参数说明 参数 是否必须 类型 描述 startDate 是 NSUInteger 开始日期-时间戳,精度秒(0时区) endDate 是 NSUInteger 结束日期-时间戳,精度秒(0时区) cycleType 是 HWMCycleType 周期类型 interval 是 NSUInteger 周期区间。 1、周期类型选择了按天,表示每几天召开一次,取值范围[1,15]; 2、周期类型选择了Week,表示每几周召开一次,取值范围[1,5]; 3、周期类型选择了Month,interval表示隔几月,取值范围[1,3] listPoints 是 NSString * 周期内的会议召开点。仅当按周和月时有效。数据格式(中间用逗号隔开):1,3,5,7 - 当按周时,取值范围[0,6],0代表周日,1代表周一,以此类推; - 当按月时,取值范围[1,31],若当月不含31号,则认为是当月最后一天 preRemindDays 是 NSUInteger 周期子会议提前通知天数。 表3 枚举HWMCycleType说明 值 说明 HWMSDKCycleTypeDay 以天为周期 HWMSDKCycleTypeWeek 以周为周期 HWMSDKCycleTypeMonth 以月为周期 示例代码 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)bookCycleConf{ 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] bookCycleConf: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]]; } }]; }
  • cancelCycleConf 接口描述 该接口用于取消至少还有一场子会议未开始的周期会议。 注意事项 该接口在登录状态下才能调用。 最后一场子会议未开始前可以调用接口,开始后调用则无效。 方法定义 1 - (void)cancelCycleConf:(NSString *_Nonnull)confId callback:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 表1 参数说明 参数 是否必须 类型 描述 confId 是 NSString * 会议id 示例代码 1 2 3 4 5 6 7 8 /// 取消周期会议 - (void)cancelCycleConf { NSString *confId = "989156631"; [[HWMBizSdk getBizOpenApi] cancelCycleConfWithParam:cancelParam callback:^(NSError * _Nullable error, id _Nullable result) { NSString *tips = !error ? @"取消周期会议成功" : @"取消周期会议失败"; NSLog(@"%@",tips); }]; }
  • cancelSubCycleWithParam: 接口描述 该接口用于取消未开始的周期子会议。 注意事项 该接口在登录状态下才能调用。 子会议未开始前可以调用接口,开始后调用则无效。 方法定义 1 - (void)cancelSubCycleWithParam:(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] cancelSubCycleWithParam:cancelParma callback:^(NSError * _Nullable error, id _Nullable result) { NSString *tips = !error ? @"取消会议成功" : @"取消会议失败"; [UIUtil showMessage:tips error:error]; }]; }
  • editCycleConf 接口描述 该接口用于编辑周期会议。 注意事项 该接口在已登录状态下才能调用。 所有字段必填,编辑修改的字段可来源于用户输入,其他不想修改的属性一定要取会议详情对应字段来赋值。 方法定义 1 - (void)editCycleConf:(HWMBookCycleConfParam *_Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback 参数描述 表1 HWMBookCycleConfParam参数说明 参数 是否必须 类型 描述 confParam 是 HWMOrderConfParam 普通会议参数 cycleConfParam 是 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 /// 编辑周期会议 - (void)editCycleConf{ 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] editCycleConf: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); } }]; }
  • 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之间的关系 父主题: 专有名词解释
共100000条