华为云用户手册

  • 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; } }
  • 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); }
  • 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /// 加入会议 - (void)joinMeeting { HWMJoinConfParam *param = [[HWMJoinConfParam alloc] init]; param.confId = @"989156631"; param.password = getPassword(); param.nickname = @"杭州会场"; param.isCameraOn = NO; param.isMicOn = YES; [[HWMSdk getOpenApi] joinConf:param callback:^(NSError * _Nullable error, id _Nullable result) { if (error) { NSLog(@"入会失败%@", error.localizedDescription); } else { NSLog(@"入会成功"); } }]; } 在未登录状态下调用该接口时,nickname参数必填。
  • 参数描述 表1 结构体HwmRecvShareStateInfo参数说明 参数 类型 描述 state HwmState 共享状态。 name char[] 共享者名称。当state为HWM_STATE_ON时才有数据。 number char[] 共享者号码。当state为HWM_STATE_ON时才有数据。 表2 枚举HwmState说明 枚举值 描述 HWM_STATE_OFF 接收的共享已关闭。 HWM_STATE_ON 开始接收到共享。
  • UpdateCustomButtonInfo 接口描述 会中刷新自定义按钮相关的配置,支持底部工具栏和共享工具栏。 注意事项 有调用Config接口并希望在会中刷新自定义按钮配置。 只对Config中已配置的自定按钮生效。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode UpdateCustomButtonInfo(const HwmCustomButtonInfo *btnInfo);
  • 业务流程 SDK初始化时,先修改HwmSdk文件夹下HwmSdk.exe文件的名称,再调用Init接口,然后处理回调函数OnInitResult。 修改exe文件名称 修改HwmSdk文件夹下HwmSdk.exe文件名称为MySdk.exe。 接口调用 构建数据结构HwmInitInfo。 定义派生类demoNotifyProc继承于基类HwmAgentNotify,新建派生类对象。 1 static demoNotifyProc *notifyObj = new demoNotifyProc(); 定义派生类demoCallbackProc继承于基类HwmAgentCallback,新建派生类对象。 1 static demoCallbackProc *callbackObj = new demoCallbackProc(); 构建其他变量。 调用Init接口,完成配置初始化,第1步中的数据作为参数。 处理回调函数 处理回调函数OnInitResult。
  • SetConfIncomingAnswerResult 接口描述 该接口用于收到会议来电时设置应答。一般用于设置会议来电的自动拒绝或者自动接听。 注意事项 只有在收到会议来电后才能调用该接口(在通知接口OnConfIncoming中调用),其他情况不应调用该接口。 调用该接口设置应答类型:弹窗选择、拒绝、接听。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 如果是自动拒接来电,需要在Init初始化成功后,需要调用Config接口将isHideConfIncomingWindow设置成TRUE。 需要拒接时SetCallIncomingAnswerResult的参数传HWM_INCOMING_ANSWER_DECLINE,需要正常弹窗接听时传HWM_INCOMING_ANSWER_NORMAL。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode type(HWMInComingAnswerType type); 回调函数 1 virtual void OnSetConfIncomingAnswerResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 枚举HWMInComingAnswerType说明 枚举值 描述 HWM_INCOMING_ANSWER_NORMAL 来电时应答采用原始体验弹窗选择。 HWM_INCOMING_ANSWER_DECLINE 来电时拒接 HWM_INCOMING_ANSWER_ANSWER 来电时接听 返回值 表2 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 /** * 收到会议来电后拒接来电 */ void demoConfCtrlDlg::OnBnClickedSetConfIncomingAnswerResult() { hwmsdkagent::HWMInComingAnswerType type = HWM_INCOMING_ANSWER_DECLINE; int ret = hwmsdkagent::SetConfIncomingAnswerResult(type); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("SetConfIncomingAnswerResult error")); } }
  • setLanguage:languageCode: 接口描述 该接口用于自定义设置SDK国际化语言,默认是中文。 注意事项 实现自定义语言,要求在 en.lproj 同级目录下创建对应的国际化文件。比如新增阿拉伯语则可以创建 ar.lproj/Localizable.strings。通过该接口设置的语言应与系统当前语言保持一致 方法定义 1 + (void)setLanguage:(HWMSdkLanguageType)language languageCode:(NSString *)languageCode;
  • 注意事项,使用通知前请查看 需要使用通知方法时,必须注册代理对象。 两种单代理注册方式: 初始化时,对HWMOpenSDKConfig对象的属性赋值 1 2 3 HWMOpenSDKConfig *config = [[HWMOpenSDKConfig alloc] init]; //示例根据需求使用对应代理 config.confSettingHandler = [NotifyMessageHandler sharedInstance]; 使用前使用[HWMSdk getSdkConfig]获取初始化对象给属性赋值 1 2 //示例根据需求使用对应代理 [HWMSdk getSdkConfig].confSettingHandler = [NotifyMessageHandler sharedInstance]; 多代理注册方式: 订阅代理 1 2 3 //示例根据需求使用对应代理 HWMOpenSDKConfig *config = [HWMSdk getSdkConfig].confSettingHandler; [config subscribeGlobalNotificationHandler:[NotifyMessageHandler sharedInstance]]; 取消订阅 1 2 3 HWMOpenSDKConfig *config = [HWMSdk getSdkConfig].confSettingHandler; //示例根据需求使用对应代理 [config unsubscribeGlobalNotificationHandler:[NotifyMessageHandler sharedInstance]]; 代理方法必须写在代理对象中 使用代理时保证代理对象存在 父主题: 通知参考
  • 示例代码 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 /// 创建会议 - (void)creatMeeting { HWMCreateConfParam *param = [[HWMCreateConfParam alloc] init]; param.subject = @"会议标题"; param.isCameraOn = YES;// 是否打开摄像头, 默认关闭 param.isMicOn = YES;// 是否打开麦克风, 默认打开 param.isAutoRecord = NO;// 是否打开会议录制, 默认关闭 param.callInRestrictionType = HWMJoinConfRestrictionAll;// 允许入会范围 // 与会者列表 if (self.selectedMemebrs) { __block NSMutableArray *members = [[NSMutableArray alloc] init]; [self.selectedMemebrs enumerateObjectsUsingBlock:^(HWMContactSelectedModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { HWMAttendeeInfo *member = [[HWMAttendeeInfo alloc] init]; member.accountId = obj.accountId; member.number = obj.number; member.name = obj.name; member.thirdUserId = obj.thirdUserId; [members addObject:member]; }]; param.members = members; } [[HWMSdk getOpenApi] createConf:param callback:^(NSError * _Nullable error, HWMCreateConfResult * _Nullable result) { [self hideLoading]; if (error) { NSLog(@"创会失败%@", error.localizedDescription); }else{ NSLog(@"创会成功"); } }]; } 与会者列表可以携带与会者创建会议,创建会议成功后服务端会呼叫携带的与会人入会,不需要可以不传。
  • 示例代码 1 2 3 4 5 6 7 8 9 /** * 获取会议详情 */ int demoEditConfDlg::GetConfDetail() { string confID = CTools::UNICODE2UTF(CString("989156631")); int ret =hwmsdkagent::GetConfDetail(confID); // 使用会议id查询会议详细信息 return ret; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /** * 会议详情回调处理 */ void demoCallbackProc::OnGetConfDetail(hwmsdk::HwmErrCode ret, const char* reason, const HwmConfDetail* confDetail) { if (confDetail == nullptr) { return; } // 此处省略缓存会议详情数据代码 CString codeStr; codeStr.Format(_T("%d"), ret); string msgStr = CTools::UTF82MultiByte(msg); CString tips = _T("OnGetConfDetail code:") + codeStr + _T(", msg:") + CString(msgStr.c_str()); AfxMessageBox(tips); } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /** * 编辑会议接口 */ int demoEditConfDlg::EditConf() { hwmsdkagent::HwmConfDetail confDetail{0}; //从缓存中得到会议详情数据赋予confDetail hwmsdkagent::HwmEditConfParam editConfParam{ 0 }; //根据实际需求拷贝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 = 1598398920; //utc时间戳 editConfParam.duration = 0 * 60 + 30;//会议时长 editConfParam.joinConfRestrictionType = hwmsdkagent::HwmJoinConfPermissionType::RESTRICTION_CALL_IN_ALL; //取编辑会议上面的允许入会用户类型 return hwmsdkagent::EditConf(&editConfParam); } 1 2 3 4 5 6 7 8 9 10 11 /** * 编辑会议接口回调 */ void demoCallbackProc::OnEditConfResult() { CString codeStr; codeStr.Format(_T("%d"), ret); string msgStr = CTools::UTF82MultiByte(msg); CString tips = _T("OnEditConfResult code:") + codeStr + _T(", msg:") + CString(msgStr.c_str()); AfxMessageBox(tips); } OnConfList事件通知跟预约会议场景相同,请参考预约会议的示例代码。
  • 业务流程 得到会议列表以后,若要编辑会议,需要先通过GetConfDetail接口查询会议详情,在接口回调OnGetConfDetail中处理详情数据,再调用EditConf接口对会议详情进行修改,并处理回调函数OnEditConfResult和消息通知OnConfList。 获取会议详情 调用GetConfDetail接口。 处理回调函数 处理回调OnGetConfDetail,得到会议详情数据。 调用编辑会议接口 使用步骤2获取的数据,组装数据结构HwmEditConfParam(包含结构内的 HwmAttendeeInfo)。 调用EditConf接口,第1步中的数据作为入参。 处理回调函数 处理回调函数OnEditConfResult。 处理消息通知 处理消息通知OnConfList。
  • 设置接入站点 在OpenSDKConfig中配置自定义的服务器接入站点(亚太站、中国站等) 默认站点是中国站 使用场景 非中国区用户可以通过配置成亚太站点就近接入 注意事项 SDK初始化的时候必须传入这个配置sdkConfig才会生效 示例代码 1 2 3 4 5 6 7 public class MSiteTypeStrategy implements ISiteTypeStrategy { @Override public SiteType getSiteType() { return SiteType.SITE_TYPE_HEC_AP; } } sdkConfig.setSiteTypeStrategy(new MSiteTypeStrategy()); 表1 SiteType参数说明 枚举值 描述 SiteType.SITE_TYPE_HEC_CN 中国站点 SiteType.SITE_TYPE_HEC_AP 亚太站点 可以自定义默认接入站点:中国站点、亚太站点;选择不同站点,默认登录服务器地址不同。 未设置接入站点,默认接入中国站点。 父主题: 基础配置
  • 业务流程 SDK初始化时,如果是windows 64位平台,先修改HwmSdk文件夹下HwmSdk.exe文件的名称,其他平台不涉及;再调用init同步接口。 修改exe文件名称(仅针对windows 64位平台,其他平台不涉及) 修改HwmSdk文件夹下HwmSdk.exe文件名称为MySdk.exe。 接口调用 构建数据结构InitInfo。 调用Init接口,完成配置初始化,第1步中的数据作为参数。
  • 示例代码 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; } 典型场景和接口参考中的示例代码仅作为示例用的伪代码,不能直接使用。
  • 获取用户状态 1 HWMSdk.getOpenApi().getHWMUserState(); 接口描述 该接口用于获取用户当前的状态(是否在会议中)。 注意事项 无。 方法定义 1 2 3 4 /** * 获取用户当前的状态(是否在会议中) */ HWMUserState getHWMUserState(); 参数描述 无。 返回值 表1 HWMUserState枚举说明 枚举值 描述 HWM_STATE_IDLE 空闲状态 HWM_STATE_IN_CONF 在会议中 HWM_STATE_IN_CALL 在呼叫中 示例代码 1 2 3 4 public void getHWMUserState() { HWMUserState hwmUserState = HWMSdk.getOpenApi(HWMBizSdk.getApplication()).getHWMUserState(); DemoUtil.showToast("user state: " + hwmUserState.getDescription()); } 父主题: 获取会议信息
  • 自定义会议中水印 在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 activity) { //设置水印bitmap return null; } } sdkConfig.setWatermarkHandle(new CustomWatermarkHandle()); 父主题: 界面定制
  • 预约会议发送短信权限更新 接口描述 收到该通知时,表示预约会议发送短信权限更新,是否可以发送短息。 方法定义 1 2 3 4 5 6 /** * 预约会议发送短信权限更新通知 * * @param hasPermission */ void onBookConfSmsPermissionChanged(boolean hasPermission); 参数描述 表1 参数说明 参数 类型 描述 hasPermission boolean 预约会议是否有发送短信通知权限 返回值 无。 父主题: 业务消息通知
  • 通知描述 在OpenSDKConfig配置中自定义来电事件处理接口 当会议邀请收到该来电通知时,可以自定义来电接听的自动处理方式。若不实现,则默认处理方式是显示接听页面。 使用场景 收到会议邀请的时候直接接听:answerTypeOnConfIncoming返回HWMIncomingAnswerType.HWM_INCOMING_AUTO_ANSWER 收到会议邀请的时候直接挂断:answerTypeOnConfIncoming返回HWMIncomingAnswerType.HWM_IMCOMING_AUTO_DECLINE 注意事项 SDK初始化的时候必须传入这个配置sdkConfig才会生效
  • 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")); } }
  • 清除界面配置 设置相关的代理后如果需要清除对应代理,可以置为nil,根据需求在对应位置设置。 1 2 3 4 5 6 [HWMSdk getSdkConfig].socialShareHandler = nil; // 可选,社交分享定制代理,用于定制会中分享能力 [HWMSdk getSdkConfig].audioConfToolBarHandler = nil; // 可选,音频会议会控菜单定制代理 [HWMSdk getSdkConfig].videoConfToolBarHandler = nil; // 可选,视频会议会控菜单定制代理 [HWMSdk getSdkConfig].participantListMenuHandler = nil; // 可选,与会者列表菜单定制代理 [HWMSdk getSdkConfig].confTitleBarMenuHandler = nil; // 可选,会议页面顶部titlebar菜单定制 [HWMSdk getSdkConfig].contactUIHandler = nil; // 可选,联系人UI 定制代理 父主题: 界面定制
  • editSubCycleConf 接口描述 该接口用于编辑周期子会议。 注意事项 该接口在已登录状态下才能调用。 方法定义 1 - (void)editSubCycleConf:(HWMSDKModifySubCycleConfParamModel *_Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 表1 HWMSDKModifySubCycleConfParamModel参数说明 参数 是否必须 类型 描述 confId 是 NSString * 会议id subConfID 是 NSString * 子会议唯一标识UUID confMediaType 否 HWMConfMediaType 会议媒体类型 startTime 否 NSInteger 会议开始时间(UTC时间),单位为秒 confLen 否 NSUInteger 会议持续时长,单位分钟 isAutoRecord 否 BOOL 会议开始后是否自动开启录制 recordAuthType 否 NSUInteger 录播鉴权方式 0:可通过连接观看/下载(不拼接nonce)1:企业用户可观看/下载 2:与会者可观看/下载 callInRestriction 否 HWMConfAllowJoinUserType 呼入限制 allowGuestStartConf 否 BOOL 允许来宾启动会议 allowGuestStartConfTime 否 NSInteger 允许来宾提前入会时间范围(单位:分钟) 0-随时,n-提前n分钟启动会议 表2 枚举HWMConfAllowJoinUserType说明 值 描述 HWMConfAllowJoinUserTypeAnyone 任何人 HWMConfAllowJoinUserTypeLoginedUser 已登录用户 HWMConfAllowJoinUserTypeInCompanyUser 企业内用户 HWMConfAllowJoinUserTypeInvitedUser 被邀请用户 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /// 编辑周期会议 - (void)editSubCycleConf{ HWMSDKModifySubCycleConfParamModel * modifySubCycleConfParamModel = [[HWMSDKModifySubCycleConfParamModel alloc] init]; modifySubCycleConfParamModel.confId = confId; modifySubCycleConfParamModel.subConfID = subConfID; modifySubCycleConfParamModel.confMediaType = HWMConfMediaTypeVideo; modifySubCycleConfParamModel.startTime = 1633017600; modifySubCycleConfParamModel.confLen = 60; modifySubCycleConfParamModel.isAutoRecord = NO; modifySubCycleConfParamModel.callInRestriction = HWMConfAllowJoinUserTypeAnyone; modifySubCycleConfParamModel.allowGuestStartConf = NO; modifySubCycleConfParamModel.allowGuestStartConfTime = 0; [[HWMBizSdk getBizOpenApi] editSubCycleConf:modifySubCycleConfParamModel callback:^(NSError * _Nullable error, id _Nullable result) { if (!error) { [UIUtil showMessage:@"编辑周期子会议会议成功"]; }else{ [UIUtil showMessage:[NSString stringWithFormat:@"编辑周期子会议失败:%zd %@", error.code, error.localizedDescription]]; } }]; }
  • ChangeVmrInfo 接口描述 该接口用于修改云会议室信息。 注意事项 该接口在已登录状态下才能调用。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 所有字段必填,调用该接口前需要获取VMR列表,不需要变更的数据请使用获取VMR列表接口返回的数据赋值。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode ChangeVmrInfo(const ChangeVmrInfoParam *param); 回调函数 1 virtual void OnChangeVmrInfo(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 参数 是否必须 类型 描述 vmrId 是 char[] 云会议室唯一ID。 vmrName 是 char[] 云会议室名称。 chairPwd 是 char[] 云会议室主持人密码。 guestPwd 是 char[] 云会议室来宾密码。 allowGuestStartConf 否 bool 是否允许来宾提前启动会议。 joinConfRestrictionType 否 HwmJoinConfPermissionType 允许入会范围限制。 isOpenWaitingRoom 否 bool 等候室开启开关。 表1 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * 修改云会议室信息 */ int demoCreateConfWithAttendeeDlg::onClickEditVmrSubmit() { hwmsdkagent::ChangeVmrInfoParam infoParam = {0}; string name = CTools::UNICODE2UTF(CString("我的会场")); string chairPwd = CTools::UNICODE2UTF(CString("******")); string guestPwd = CTools::UNICODE2UTF(CString("******")); strcpy_s(infoParam.vmrName, sizeof(infoParam.vmrName), name.c_str()); strcpy_s(infoParam.chairPwd, sizeof(infoParam.chairPwd), chairPwd.c_str()); strcpy_s(infoParam.guestPwd, sizeof(infoParam.guestPwd), guestPwd .c_str()); return hwmsdkagent::ChangeVmrInfo(&infoParam); }
  • showToast 接口描述 该接口用于显示toast提示。 方法定义 1 - (void)showToast:(HWMUISDKToastInfoModel *)info; 参数描述 表1 参数说明 参数 是否必须 类型 描述 info 是 HWMUISDKToastInfoModel 提示信息 表2 结构体HWMUISDKToastInfoModel 参数说明 参数 类型 描述 content NSString * 提示内容。 duration NSInteger 提示持续时间(单位:秒)。 返回值 无 示例代码 1 2 3 4 5 HWMUISDKToastInfoModel * info = [[HWMUISDKToastInfoModel alloc] init]; // 从输入框获取提示内容和提示持续时间 info.content = self.toastContentView.textField.stringValue; info.duration = self.toastDurationInfoView.textField.intValue; [[HWMBizSdk getBizOpenApi] showToast:info];
  • setGuaranteedIpAddresses: 接口描述 该接口用于设置会控保底ip地址。 注意事项 多个地址中间用分号隔开,最多支持4个地址。 返回值只代表接口是否调用成功。 方法定义 1 - (HWMSDKERR)setGuaranteedIpAddresses:(NSString *)pAddresses; 参数描述 表1 参数说明 参数 是否必须 类型 描述 pAddresses 是 NSString * 保底ip地址信息 返回值 接口是否调用成功 示例代码 1 [[HWMBizSdk getBizOpenApi] setGuaranteedIpAddresses:guaranteeIpAddrs];
  • 示例代码 1 2 3 4 5 6 7 8 9 10 11 /** * 退出sdk */ void CdemoBeforeLoginDlg::OnBnClickedButtonExit() { int ret = hwmsdkagent::Exit(); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("Exit error")); } }
  • StopShare 接口描述 该接口用于结束会中共享。SDK的UI已经实现了“停止共享”功能,如果第三方App不需要通过程序控制停止共享,则不用调用该接口。 注意事项 不在共享中不应调用此接口。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode StopShare(); 回调函数 1 virtual void OnStopShareResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 无。 返回值 表1 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 /** * 结束共享 */ void demoConfCtrlDlg::OnBnClickedButtonStopShare() { //结束共享 int ret = hwmsdkagent::StopShare(); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("StopShare error")); } }
  • 界面配置 设置自定义界面的代理,根据需求在对应位置设置代理。可以在初始化SDK的时候配置,也可以在使用时配置。 1 2 3 4 [HWMSdk getSdkConfig].socialShareHandler = 代理对象; // 可选,社交分享定制代理,用于定制会中分享能力 [HWMSdk getSdkConfig].confUIHandler = 代理对象; // 可选,会中部分UI代理 [HWMSdk getSdkConfig].contactUIHandler = 代理对象; // 可选,会中邀请联系人UI 定制代理 [HWMSdk getSdkConfig].headPortraitApiHandler = 代理对象; // 可选,头像拦截显示定制代理 父主题: 界面定制
  • GetVmrList 接口描述 该接口用于获取VMR列表。 注意事项 该接口在已登录状态下才能调用。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode GetVmrList(); 回调函数 该接口已废弃,请参考新回调OnGetVmrInfoListResult 1 virtual void OnGetVmrListResult(hwmsdk::HwmErrCode ret, const char* reason, const HwmVmrInfo* vmrInfoList, unsigned int listLen) {}; 新回调 1 virtual void OnGetVmrInfoListResult(hwmsdk::HwmErrCode ret, const char* reason, const HwmVmrListInfo* vmrListInfo) {}; 参数描述 无。 返回值 表1 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 表2 结构体HwmVmrInfo参数说明 参数 类型 描述 vmrConferenceId char[] 云会议室上的固定会议ID。 vmrId char[] 云会议室唯一ID。 chairmanPwd char[] 云会议室主持人密码。 guestPwd char[] 云会议室来宾密码。 type HwmVmrIdType 云会议室类型。 maxParties int 云会议室最大方数。 name char[] 会议室名称。 allowGuestStartConf bool 是否允许来宾提前启动会议。 joinConfRestrictionType HwmJoinConfPermissionType 允许入会范围限制。 isOpenWaitingRoom bool 等候室开启开关。 表3 枚举HwmVmrIdType说明 枚举值 描述 PERSONAL_MEETING_ID 个人会议ID。 CLOUD_MEETING_ROOM_ID 云会议室ID。 表4 结构体HwmVmrListInfo参数说明 参数 类型 描述 numOfVmrs unsigned int 云会议室个数。 vmrs HwmVmrInfo 云会议室信息。 isEnableShareVmr bool 是否开启共享vmr。 示例代码 1 2 3 4 5 6 7 8 9 10 11 /** * 获取Vmr列表 */ void demoBookConfDlg::GetVmrList() { int ret = hwmsdkagent::GetVmrList(); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("GetVmrList error")); } }
  • 参数描述 表1 参数说明 参数 类型 描述 injectBtn HwmClickInjectBtn 按钮类型。 data void* 按钮参数,可能为空。 若按钮类型为HWM_CLICK_INJECT_BTN_CALL_OTHER_NUM,该参数为期望呼叫的与会者信息; 若按钮类型为HWM_CLICK_INJECT_BTN_INVITE,该参数为空。 id const char* 自定义按钮id。 当按钮类型为HWM_TOOLS_INJECT_BTN_CUSTOM时,该参数为自定义按钮的id; 当按钮类型为HWM_CLICK_INJECT_BTN_PARTICIPANT_DETAIL,该参数为HwmConfAttendee; 当按钮类型为其他值时,该参数为空。 表2 枚举HwmClickInjectBtn说明 枚举值 描述 HWM_CLICK_INJECT_BTN_INVITE 邀请按钮。 HWM_CLICK_INJECT_BTN_CALL_OTHER_NUM 呼叫其他号码按钮。 HWM_CLICK_INJECT_BTN_ATTENDEE 与会者按钮。 HWM_CLICK_INJECT_BTN_SHARE 共享按钮。 HWM_CLICK_INJECT_BTN_LEAVE 离开按钮。 HWM_TOOLS_INJECT_BTN_CUSTOM 用户自定义按钮。 HWM_CLICK_INJECT_BTN_COPY_CONF_INFO 复制会议信息按钮。 HWM_CLICK_INJECT_BTN_PARTICIPANT_DETAIL 与会者详情按钮。
共100000条