华为云用户手册

  • 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 /** * 修改云会议室信息 */ int demoCreateConfWithAttendeeDlg::onClickEditVmrSubmit() { hwmsdkagent::ChangeVmrInfoParam infoParam = {0}; strcpy_s(infoParam.vmrName, sizeof(infoParam.vmrName), GetName().c_str()); strcpy_s(infoParam.chairPwd, sizeof(infoParam.chairPwd), GetChairPwd().c_str()); strcpy_s(infoParam.guestPwd, sizeof(infoParam.guestPwd), GetGuestPwd().c_str()); return hwmsdkagent::ChangeVmrInfo(&infoParam); }
  • GetConfDetail 接口描述 该接口用于获取会议的详细信息。 注意事项 该接口在已登录状态下才能调用。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode GetConfDetail(const char confId[HWM_MAX_CONF_ID_LEN]); 回调函数 1 virtual void OnGetConfDetail(hwmsdk::HwmErrCode ret, const char* reason, const HwmConfDetail* vmrInfoList) {}; 参数描述 表1 接口入参 参数 是否必须 类型 描述 confId 是 char[] 会议ID。 表2 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 表3 结构体HwmConfDetail字段名 字段 类型 描述 confListInfo HwmConfListInfo 会议信息,参见 表3。 vmrFlag bool 是否是vmr会议。 vmrId char[] 云会议室唯一ID。 isRecordOn bool 是否有录制会议权限。 isLiveOn bool 保留。编辑会议时透传会议详情此字段。 isAutoRecord bool 是否开启自动录制会议 isGuestFreePwd bool 是否需要来宾免密。 isMailOn bool 是否发送邮件通知。 isSmsOn bool 是否发送短信通知。 isEmailCalenderOn bool 是否发送日历通知。 joinConfRestrictionType HwmJoinConfPermissionType 会议准入设置 表3。 attendees HwmAttendeeInfo* 与会者列表,字段信息参见 预约会议 中表述。只能查询会前预约时添加的与会人和会中主持人邀请的与会人。如果是与会人主动加入的,这个接口查不出来。 attendeeLen unsigned int 与会者列表长度。 confServerType HwmConfServerType 会议服务器类型 1:RTC or 0:MCU isOpenWaitingRoom bool 是否开启等候室 vmrConfIdType HwmVmrConfIdType 云会议室的会议ID类型,参见HwmVmrConfIdType。 allowGuestStartConf bool 是否允许来宾提前启动会议。 allowGuestStartConfTime unsigned int 允许来宾提前入会时间范围(单位:分钟) :0-随时,n-提前n分钟启动会议。 concurrentParticipants unsigned int 会议方数,会议最大与会人数限制:0为不限制。 defaultSummaryState HwmSummaryState 会议云录制是否包含纪要,初始值。 autoMuteMode HwmAutoMuteType 来宾入会,软终端是否自动静音。 hardTerminalAutoMuteMode HwmAutoMuteType 来宾入会,硬终端是否自动静音。 示例代码 1 2 3 4 5 6 7 8 /** * 获取会议详情 */ int demoEditConfDlg::GetConfDetail() { int ret =hwmsdkagent::GetConfDetail(GetConfID().c_str()); // 使用会议id查询会议详细信息 return ret; }
  • CancelConf 接口描述 该接口用于取消已预约的会议。 注意事项 该接口在登录状态下才能调用。 调用该接口时,仅能取消尚未开始的会议,若会议已召开,则接口返回失败。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode CancelConf(const char confId[HWM_MAX_CONF_ID_LEN]); 回调函数 1 virtual void OnCancelConfResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 参数 是否必须 类型 描述 confId 是 char[] 会议ID。 返回值 表1 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 /** * 取消会议接口 */ int demoConfListDlg::OnBnCancelConf(hwmsdk::HwmErrCode ret, const char* msg) { return hwmsdkagent::CancelConf(GetConfId().c_str()); }
  • 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_SUC CES S != ret) { AfxMessageBox(_T("GetVmrList error")); } }
  • EndConf 接口描述 该接口用于结束会议。 注意事项 不在会议中不应调用此接口。 调用该接口,会议将结束,无法再次加入该会议。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode EndConf(); 回调函数 1 virtual void OnEndConfResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 无。 返回值 表1 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 /** * 结束会议 */ void demoConfCtrlDlg::OnBnClickedButtonStopConf() { int ret = hwmsdkagent::EndConf(); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("EndConf error")); } }
  • LeaveConf 接口描述 该接口用于离开会议。 注意事项 不在会议中不应调用此接口。 调用该接口离开会议,会议不会结束,在会议存在期间可以再次入会。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode LeaveConf(); 回调函数 1 virtual void OnLeaveConfResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 无。 返回值 表1 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 /** * 离开会议 */ void demoConfCtrlDlg::OnBnClickedButtonLeaveConf() { int ret = hwmsdkagent::LeaveConf(); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("LeaveConf 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")); } }
  • StartShare 接口描述 该接口用于开启会议共享。SDK的UI已经实现了“共享”功能,如果第三方App不需要通过程序控制开启共享,则不用调用该接口。 注意事项 不在会议中调用该接口将返回失败。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode StartShare(HwmStartShareInfo *startShareInfo); 回调函数 1 virtual void OnStartShareResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 结构体HwmStartShareInfo参数说明 参数 是否必须 类型 描述 shareType 是 enum 共享类型。 monitorShareInfo 否 HwmMonitorShareInfo 屏幕共享信息。当共享类型不是屏幕共享时,该变量不需要赋值。 appShareInfo 否 HwmAppShareInfo 程序共享信息。当共享类型不是程序共享时,该变量不需要赋值。 operatableUiMonitor 是 HwmMonitorShareInfo 共享时,工具栏所在的显示器。若monitorMode为主副屏,monitor值为0,则不指定显示器。 表2 枚举HwmShareType说明 枚举值 描述 HWM_SHARE_TYPE_MONITOR 屏幕共享。 HWM_SHARE_TYPE_APP 程序共享。 表3 结构体HwmMonitorShareInfo参数说明 参数 是否必须 类型 描述 monitor 是 HwmMonitor 显示器类型,monitorMode为主副屏模式下生效。 monitorMode 是 HwmMonitorMode 屏幕模式。 monitorIndex 是 unsigned int 屏幕索引,monitorMode为多屏模式下生效。 表4 枚举HwmMonitor说明 枚举值 描述 HWM_MONITOR_MAIN 主显示器。 HWM_MONITOR_SECONDARY 副显示器。 表5 枚举HwmMonitorMode说明 枚举值 描述 HWM_MONITOR_MODE_PRIMARY_SECONDARY 主副屏模式。 HWM_MONITOR_MODE_MULTI_MONITOR 多屏模式。 表6 结构体HwmAppShareInfo参数说明 参数 是否必须 类型 描述 appHandle 是 HWND 程序句柄。 返回值 表7 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * 开启共享 */ int demoStartShareDlg::clickStartShare() { hwmsdkagent::HwmStartShareInfo data; memset(&data, 0, sizeof(hwmsdkagent::HwmStartShareInfo)); //设置共享类型 data.shareType = hwmsdkagent::HwmShareType::HWM_SHARE_TYPE_MONITOR; //设置共享的显示器 data.monitorShareInfo.monitor = hwmsdkagent::HWM_MONITOR_MAIN; //设置工具栏所在的显示器 data.operatableUiMonitor = hwmsdkagent::HWM_MONITOR_MAIN; int ret = hwmsdkagent::StartShare(&data); return ret; }
  • JoinConfByRandom 接口描述 通过邮件会议通知中的会议链接入会时(会议链接如:https://bmeeting.huaweicloud.com/#/j/981924330/e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659),链接里面的是会议ID(即举例中的981924330)和会议的Random码(即举例中的e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659)。第三方App需要调用本接口加入会议。 如果预约会议时选择没有来宾密码,会议链接只有会议ID,没有Random码。 注意事项 在登录和未登录状态下都可以调用该接口。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode JoinConfByRandom(HwmJoinConfByRandomInfo *joinConfByRandomInfo); 回调函数 1 virtual void OnJoinConfByRandomResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 结构体HwmJoinConfByRandomInfo参数说明 参数 是否必须 类型 描述 confId 是 char[] 会议ID。 random 否 char[] 48位会议密码映射值。来源于分享会议信息中的会议链接尾部。会议不要求来宾密码时,可以为空字符串。 name 否 char[] 会议昵称。在已登录状态下可为空,已登录时为空将使用登录的用户名作为会场名。匿名入会必须传该名字或者提前设置会场名。 domain 否 char[] 域名 。离线入会时使用。 isCloseSpk 否 bool 是否关闭扬声器,true关闭扬声器;false不关闭扬声器。 返回值 表2 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // 通过会议ID和Random加入会议 int demoJoinConfByRandomDlg::clickJoinConfByRandom() { // 填写会议ID和密码映射值等;Random入会时,支持配置会场名称 hwmsdkagent::HwmJoinConfByRandomInfo data; memset(&data, 0, sizeof(hwmsdkagent::HwmJoinConfByRandomInfo)); strncpy_s(data.confId, GetMeetingID().c_str(), HWM_MAX_CONF_ID_LEN); strncpy_s(data.random, GetAccessCode().c_str(), HWM_MAX_RANDOM_LEN); strncpy_s(data.name, GetParticipantName().c_str(), HWM_MAX_DISPLAY_NAME_LEN); data.isCloseSpk = false; // 设置麦克风和摄像头开关 int ret = EnableFeature(hwmsdkagent::HWM_ENABLE_FEATURE_TYPE_MIC_SWITCH, true); ret = EnableFeature(hwmsdkagent::HWM_ENABLE_FEATURE_TYPE_CAM_SWITCH, false); ret = hwmsdkagent::JoinConfByRandom(&data); return ret; } 在加入会议前可通过调用EnableFeature修改麦克风、摄像头状态。
  • JoinConfById 接口描述 该接口用于通过会议ID和密码加入已经存在的会议。 注意事项 在登录和未登录状态下都可以调用该接口。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode JoinConfById(HwmJoinConfByIdInfo *joinConfByIdInfo); 回调函数 1 virtual void OnJoinConfByIdResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 结构体HwmJoinConfByIdInfo参数说明 参数 是否必须 类型 描述 confId 是 char[] 会议ID。 password 否 char[] 会议密码。若希望以主持人身份入会,必须传入主持人密码。若希望以来宾身份入会,会议要求来宾密码时,必须传入来宾密码,会议不要求来宾密码时,可以为空字符串。 name 否 char[] 会议昵称。在已登录状态下可为空,已登录时为空将使用登录的用户名作为会场名。匿名入会必须传该名字或者提前设置会场名 isCloseSpk 否 bool 是否关闭扬声器,true关闭扬声器;false不关闭扬声器。 isStopConflictConf 否 bool 强制结束和当前VMR会议资源冲突的会议(必须是vmr资源的拥有者才有权限,否则无效) 返回值 表2 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // 通过会议ID加入会议 int demoJoinConfByIdDlg::clickJoinConfById() { // 填写会议ID和会议密码;未登录场景下加入会议时,也可以配置本会场的会场名称 hwmsdkagent::HwmJoinConfByIdInfo data; memset(&data, 0, sizeof(hwmsdkagent::HwmJoinConfByIdInfo)); strncpy_s(data.confId, GetMeetingID().c_str(), HWM_MAX_CONF_ID_LEN); strncpy_s(data.password, GetAccessCode().c_str(), HWM_MAX_PASSWORD_LEN); strncpy_s(data.name, GetParticipantName().c_str(), HWM_MAX_DISPLAY_NAME_LEN); data.isCloseSpk = false; // 设置麦克风和摄像头开关 int ret = EnableFeature(hwmsdkagent::HWM_ENABLE_FEATURE_TYPE_MIC_SWITCH, true); ret = EnableFeature(hwmsdkagent::HWM_ENABLE_FEATURE_TYPE_CAM_SWITCH, false); ret = hwmsdkagent::JoinConfById(&data); return ret; } 在加入会议前可通过调用EnableFeature修改麦克风、摄像头状态。
  • 参数描述 表1 结构体HwmRecvShareStateInfo参数说明 参数 类型 描述 state HwmState 共享状态。 name char[] 共享者名称。当state为HWM_STATE_ON时才有数据。 number char[] 共享者号码。当state为HWM_STATE_ON时才有数据。 表2 枚举HwmState说明 枚举值 描述 HWM_STATE_OFF 接收的共享已关闭。 HWM_STATE_ON 开始接收到共享。
  • 参数描述 表1 结构体HwmShareStateInfo参数说明 参数 类型 描述 state HwmState 共享状态。 name char[] 共享者名称。当state为HWM_STATE_ON时才有数据。 number char[] 共享者号码。当state为HWM_STATE_ON时才有数据。 shareType HwmShareType 共享类型。 monitor HwmMonitor 共享显示器类型(主屏、副屏)。 appHandle HWND 程序句柄。 stopShareReason HwmStopShareReason 停止共享原因。 表2 枚举HwmState说明 枚举值 描述 HWM_STATE_OFF 共享已关闭。 HWM_STATE_ON 共享已开启。 表3 枚举HwmShareType说明 枚举值 描述 HWM_SHARE_TYPE_MONITOR 屏幕共享。 HWM_SHARE_TYPE_APP 程序共享。 HWM_SHARE_TYPE_WHITE_BOARD 白板共享。 表4 枚举HwmMonitor说明 枚举值 描述 HWM_MONITOR_MAIN 主显示器。 HWM_MONITOR_SECONDARY 副显示器。 表5 枚举HwmStopShareReason说明 枚举值 描述 HWM_STOP_SHARE_BY_NORMAL 正常停止共享。 HWM_STOP_SHARE_BY_REJOIN_CONF MMR迁移。
  • 参数描述 表1 参数说明 参数 类型 描述 updateType HwmConflistUpdateType 更新类型。 confInfoList HwmConfListInfo* 会议列表参数信息。 confInfoLen unsigned int 会议列表参数信息的长度。 表2 枚举HwmConflistUpdateType说明 枚举值 描述 CONFLIST_UPDTAE_ALL 会议列表全量更新。 CONFLIST_UPDATE_ADD 会议列表有增加或者修改。编辑会议导致会议列表变更会上报该值。 CONFLIST_UPDATE_DELETE 会议列表有删除。 表3 结构体HwmConfListInfo参数说明 参数 类型 描述 confId char[] 会议ID。 confSubject char[] 会议主题。 chairmanPwd char[] 主持人密码。 guestPwd char[] 来宾密码。 audiencePwd char[] 观众密码。 startTimeStamp long long 会议开始时间,UTC时间戳,精度秒。 endTimeStamp long long 会议结束时间,UTC时间戳,精度秒。 timeZone char[] 时区码 mediaType HwmMediaType 媒体类型 表2。 scheduserName char[] 会议预定者名称。 vmrConferenceId char[] 用于云会议显示的ID。 chairJoinUri char[] 主持人加入会议uri链接 guestJoinUri char[] 来宾加入会议uri链接 audienceJoinUri char[] 观众加入会议的链接 confStateType HwmConfState 会议状态 isWebinar bool 是否是网络研讨会 selfConfRole HwmConfRole 本人在会议中的角色表5。 customInfo char[] 自定义扩展信息 表4 枚举HwmConfState说明 枚举值 描述 HWM_CONF_STATE_SCHEDULE 预定状态。 HWM_CONF_STATE_CREATING 正在创建状态。 HWM_CONF_STATE_GOING 会议已经开始。 HWM_CONF_STATE_DESTROYED 会议已经关闭
  • 参数描述 表1 结构体HwmConfInfo参数说明 参数 类型 描述 url char[] 当前会议链接,可以分享通过浏览器打开进行入会。 confId char[] 会议id。 role HwmConfRole 会议角色。主持人、普通与会者等。 chairmanPwd char[] 会议主持人密码。 generalPwd char[] 会议来宾密码。 subject char[] 会议主题。 isOtherCorpConf bool 是否是外部企业的会议。如果是加入外部企业的会议或者匿名入会是true,否则是false。 isCreator bool 是否是会议预订者。 isInBreakoutSubConf bool 是否在讨论组中。 customInfo char[] 自定义扩展信息 表2 枚举HwmConfRole说明 枚举值 描述 HWM_CONF_ROLE_ATTENDEE 普通与会者。 HWM_CONF_ROLE_CHAIRMAN 主持人。 HWM_CONF_ROLE_AUDIENCE 观众。 HWM_CONF_ROLE_COHOST 联席主持人。 HWM_CONF_ROLE_WAITING 等候室成员。
  • 参数描述 表1 结构体HwmConfStateInfo参数说明 参数 类型 描述 state HwmState 会议状态。 reason HwmConfEndReason 离会原因。 isP2PConf bool 是否立即会议。 表2 枚举HwmState说明 枚举值 描述 HWM_STATE_OFF 会议未开始或已离开状态。 HWM_STATE_ON 会议已开始状态。 表3 枚举HwmConfEndReason说明 枚举值 描述 HWM_CONF_END_REASON_LEAVE_CONF_HANGUP 离开会议。 HWM_CONF_END_REASON_STOP_CONF_HANGUP 会议已结束。 HWM_CONF_END_REASON_CHAIR_HANGUP 被主持人移出会场。 HWM_CONF_END_REASON_SESSION_TIMER_TIMEOUT 网络中断。 HWM_CONF_END_REASON_NOSTREAM_HANGUP 网络异常。 HWM_CONF_END_REASON_CORP_CONFERENCE_RESOURCE_HAS_BEEN_RUN_OUT 企业资源已达上限。 HWM_CONF_END_REASON_CONF_ONLY_SAME_ENTERPRISE 只允许企业内用户加入会议 HWM_CONF_END_REASON_CONF_ONLY_INVITED 只允许被邀请者加入会议 HWM_CONF_END_REASON_CONF_IS_LOCKED 会议被锁定 HWM_CONF_END_ERR_VMR_NOT_BEEN_HOLD VMR会议来宾不允许激活会议 HWM_CONF_END_REASON_VMR_CONF_CONFLICT VMR会议冲突 HWM_CONF_END_REASON_SERVER_ERROR 服务器异常 HWM_CONF_END_REASON_NUM_OF_PAR_EXCEEDS_UPPER_LIMIT 与会方超出专用VMR套餐的最大与会人数 HWM_CONF_END_REASON_CONF_NUM_OVER_MAX_ALLOWED = 111071116 超出最大在线会议数限制 HWM_CONF_END_MANAGER_SHARE_VMR_NOT_ENOUGH = 111071151 无共享云会议室资源 HWM_CONF_END_REASON_OVER_MAX_PARTICIPANT_NUMBER = 111072101 超过设置的会议方数 HWM_CONF_END_REASON_PARTICIPANT_REACH_MAX_NUM = 111072504 达到系统单个会议人数上限 HWM_CONF_END_REASON_PARTICIPANT_CONF_NOT_EXIST = 111081002 会场所在会议不存在或已结束 HWM_CONF_END_MANAGER_NO_UPSCALE_VMR = 112030001 无高档可用的VMR资源 HWM_CONF_END_REASON_END_EXPIRATION = 414100069 用户,企业或SP失效 HWM_CONF_END_REASON_SDK_CHAIR_END_CONF = 414100074 主持人结束会议 HWM_CONF_END_REASON_SDK_TIMEOVER_END_CONF = 414100075 会议到时间结束会议 HWM_CONF_END_REASON_CALLEE_REFUSED_END_CONF = 414100076 被叫拒接 HWM_CONF_END_REASON_CALLEE_TIMEOUT_END_CONF = 414100077 被叫超时 HWM_CONF_END_FORCE_OPEN_CAMERA_HANGUP = 414100078 强制视频会议挂断 HWM_CONF_END_REASON_RTC_SDK_NETWORK_FAILED = 990000053 网络问题
  • 参数描述 表1 结构体HwmConfIncomingInfo参数说明 参数 类型 描述 state HwmConfComingState 来电状态。 mediaType HwmMediaType 会议媒体类型。 confId char[] 会议id。 vmrId char[] VMR会议id。 isP2PConf bool 是否立即会议。 thirdUserId char[] 与会者三方账号,appId登录时使用。 表2 枚举HwmConfComingState说明 枚举值 描述 HWM_CONF_COMING_STATE_START 初始状态,来电振铃中。 HWM_CONF_COMING_STATE_ACCEPT 接听状态,已接听来电。 HWM_CONF_COMING_STATE_REJECT 拒绝状态,已拒绝来电。 HWM_CONF_COMING_STATE_TIMEOUT 未响应状态,呼叫超时或者主叫已挂断。 表3 枚举HwmMediaType说明 枚举值 描述 HWM_MEDIA_TYPE_AUDIO 音频。 HWM_MEDIA_TYPE_VIDEO 视频。
  • 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]);
  • SetWaterMark 接口描述 该接口用于设置水印自定义内容注入,若未进行设置,将默认使用内部优先级来展示水印内容。 图1 自定义水印 注意事项 该接口必须在会前调用,会中调用不会即时生效。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 企业级水印开关未打开的场景下,水印自定义内容注入也不会生效。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode SetWaterMark(const HwmWaterMarkInfo * wtInfo); 回调函数 1 virtual void OnSetWaterMarkInjectInfoResult(hwmsdk::HwmErrCode ret, const char* reason) {}; 参数描述 表1 参数说明 参数 是否必须 类型 描述 wtInfo 是 HwmWaterMarkInfo 设置水印注入信息。 表2 结构体HwmWaterMarkInfo参数说明 参数 类型 描述 content char[] 设置用户自定义水印注入内容。 color HwmWaterMarkColorType 设置水印字体颜色。 表3 枚举HwmWaterMarkColorType说明 枚举值 描述 HWM_WATERMARK_COLOR_TYPE_LIGHT 浅色 #CCCCCC。 HWM_WATERMARK_COLOR_TYPE_STANDARD 标准色 #999999。 HWM_WATERMARK_COLOR_TYPE_DARKER 深色 #666666。 返回值 表4 返回值 类型 描述 HwmErrCode 成功返回0,其他值表示失败。失败返回值见错误码参考。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /** * 设置水印 */ void demoWaterMarkInfoDlg::OnBnClickedSetWaterMarkInjectInfo() { unsigned int color = hwmsdkagent::HWM_WATERMARK_COLOR_TYPE_LIGHT; hwmsdkagent::HwmWaterMarkInfo injectInfo = {0}; strncpy_s(injectInfo.content, GetContent().c_str(), HWM_MAX_WATERMARK_CONTENT_LEN); injectInfo.color = (hwmsdkagent::HwmWaterMarkColorType)color; int ret = hwmsdkagent::SetWaterMark(&injectInfo); if (hwmsdk::HWM_COMMON_SUCCESS != ret) { AfxMessageBox(_T("SetWaterMark inject info failed")); } }
  • EnableFeature 接口描述 Windows SDK中有些功能特性是通过开关控制是否打开的,该接口用于配置这些功能的打开或者关闭。 注意事项 枚举中的功能项均有默认值,若对开关状态不做要求,可以不必调用该接口。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode EnableFeature(HwmEnableFeatureType type, bool isEnable);
  • SetLanguageWithCode 接口描述 该接口用于自定义设置SDK国际化语言。默认是中文。 注意事项 实现自定义语言,要求在 \HwmSdk\sdkResources\language\ 目录下创建对应的国际化文件。如新增阿拉伯语则可以创建 \ar\temp.js,通过该接口设置的语言应与系统当前语言保持一致 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode SetLanguageWithCode(HwmLanguage language, const char* languageCode);
  • Init 接口描述 用于启动并且初始化SDK。 注意事项 调用该接口之前请先修改HwmSdk文件夹下HwmSdk.exe文件的名称。 该接口用于启动并初始化SDK,在调用其他接口之前必须先调用该接口并等待初始化回调结果。 每次调用初始化接口会重新启动SDK,之前所有设置与操作将不复存在。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode Init(HwmInitInfo *initInfo);
  • 开发环境准备 在开发的过程中请满足如下环境要求。 表1 环境要求 环境和工具名称 版本要求 说明 操作系统 Windows 10/11专业版 硬件要求: CPU:i5-2400四核 3.1GHz及以上。 内存:4GB及以上。 Microsoft Visual Studio Visual Studio 2017 安装时需要勾选“使用 C++ 的桌面开发”,“用于 x86 和 x64 的 Visual C++ MFC”,“Windows 10 SDK (10.0.15063.0)” 测试资源及App ID申请 - 请参见“开发前准备”。
  • 使用第三方加固软件后,路由跳转错误 因为我们用到了类似ARouter的路由方案, 如果加固后出现路由跳转错误,解决方案如下: 永久解决方案:联系第三方加固软件的技术支持,把我们的路由自动生成的类所在的包给过滤掉,包路径:com.huawei.cloudlink.router.routermap。 临时解决方案:详见下图; 注:如使用此方案,每次SDK发版都需要重新设置一次。 图1 临时解决方案 父主题: Android SDK
  • 获取Android SDK的日志 如果SDK初始化时没有修改过日志存放路径,默认的日志路径在“/sdcard/Android/data/应用的包名/files/log下”,可以使用设备上的文件管理工具将整个log目录打包。也可以通过adb获取日志文件,步骤如下: 连接手机USB并打开开发者模式开关,打开cmd,输入adb devices查看是否已连接设备 输入adb pull 日志路径 目标路径,并回车。 图1 命令行取日志 找到D盘目录,SDK的日志在d:\log\log下。 图2 日志目录
  • 常见错误码 表1 枚举HWMUISDKErrorCode说明 变量值 值 描述 HWMUISDKErrorCodeContactNotFound 40000 联系人不存在 HWMUISDKErrorCodeNumberAndAccountEmpty 40001 账号和号码不能都为空 HWMUISDKErrorCodeArgsError 40002 参数错误 HWMUISDKErrorCodeRepeatRequest 40003 重复调用方法 HWMUISDKErrorCodeTimeOut 40004 超时 HWMUISDKErrorCodeUnInit 40005 未初始化 HWMUISDKErrorCodeArgsLengthOverrun 40006 参数长度超限 HWMUISDKErrorCodePasswordOrAccountEmpty 40007 账号或密码不能都为空 HWMUISDKErrorCodeConfIdEmpty 40008 会议id不能为空 HWMUISDKErrorCodeUnLogin 40009 未登录 HWMUISDKErrorCodeLoginIng 40010 登录中 HWMUISDKErrorCodeSubjectTooLong 40011 会议主题长度不能超过50 HWMUISDKErrorCodeConfIdTooLong 40012 会议ID长度不能超过20 HWMUISDKErrorCodeConfOrCallExit 40013 正在会议或呼叫中 HWMUISDKErrorCodeAPPIDInfoIllegal 40014 APPID 信息入参不合法 HWMUISDKErrorCodeVMRHostPasswordLengthlegal 40015 主持人密码长度不合法 HWMUISDKErrorCodeVMRNameEmpty 40016 VMR名字为空 HWMUISDKErrorCodeCallInterfaceError 40110 底层调用会议的接口失败 HWMUISDKErrorCodeConfStartTimeEarly 40115 会议的开始时间早于当前时间 HWMUISDKErrorCodeNotInConf 40116 不在会议中 HWMUISDKErrorE2EEncryptAlgorithmError 41117 端到端加密算法不对称 HWMUISDKErrorCodeCallResourceNoEnough 115022001 企业并发资源不足 父主题: 错误码参考
  • 注意事项,使用通知前请查看 需要使用通知方法时,必须注册代理对象。 两种单代理注册方式: 初始化时,对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]]; 代理方法必须写在代理对象中 使用代理时保证代理对象存在 父主题: 通知参考
  • changeVmrInfo 接口描述 该接口用于修改云会议室信息。 注意事项 尽量只修改来宾密码 方法定义 1 - (void)changeVmrInfo:(HWMModifyVMRParam *)info callback:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 表1 HWMModifyVMRParam参数说明 参数 是否必须 类型 描述 vmrId 是 NSString * 云会议室唯一ID guestPwd 是 NSString * 来宾密码 chairPwd 是 NSString * 主持人密码 vmrName 是 BOOL 云会议室名称 allowGuestStartConf 是 BOOL 是否允许来宾提前启动会议 confAllowJoinUser 否 HWMJoinConfRestrictionType 允许入会范围 isOpenWaitingRoom 否 BOOL 是否启用等候室 表2 枚举HWMJoinConfRestrictionType说明 参数 描述 HWMJoinConfRestrictionAll 所有用户 HWMJoinConfRestrictionCompany 企业内用户 HWMJoinConfRestrictionInvited 被邀请用户 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /// 修改云会议信息 - (void)changeVmrInfo { HWMModifyVMRParam * vmrInfo = [[HWMModifyVMRParam alloc] init]; vmrInfo.guestPwd = getGuestPwd(); vmrInfo.chairPwd = getChairPwd(); vmrInfo.vmrName = @"云会议室名称" vmrInfo.vmrId = @"8a8d0d8a718d87d50171a9f6b8de0f40"; vmrInfo.allowGuestStartConf = YES; [[HWMBizSdk getBizOpenApi] changeVmrInfo:vmrInfo callback:^(NSError * _Nullable error, id _Nullable result) { if (error) { NSLog(@"%@", error.localizedDescription); } else { NSLog(@"修改成功"); } }]; }
  • cancelConf 接口描述 该接口用于取消未开始的会议。 注意事项 只有主持人可以取消会议 方法定义 1 - (void)cancelConf:(NSString *_Nonnull)confId callback:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 表1 参数说明 参数 是否必须 类型 描述 confId 是 NSString * 会议ID。 示例代码 1 2 3 4 5 6 7 8 9 10 /// 取消会议 - (void)cancelConf { [[HWMBizSdk getBizOpenApi] cancelConf:@"986927771" callback:^(NSError * _Nullable error, id _Nullable result) { if (error) { NSLog(@"%@",error.localizedDescription); } else { NSLog(@"取消会议成功"); } }]; }
  • editConf 接口描述 该接口用于编辑未开始的预约会议。 注意事项 会议未开始前且自己是主持人才可以调用接口。 预约会议中携带的与会者在编辑会议时需要传入userUuid(会议详情中每个与会者带有该参数)。 所有字段必填,编辑修改的字段可来源于用户输入,其他不想修改的属性通过会议详情参数获取。 方法定义 1 - (void)editConf:(HWMOrderConfParam *_Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 表1 HWMOrderConfParam参数说明 参数 是否必须 类型 描述 confId 是 NSString * 会议ID。 isLiveOn 否 BOOL 是否开启直播。 其余参数参见预约会议。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 /// 编辑会议 - (void)editConf { HWMOrderConfParam * param = [[HWMOrderConfParam alloc] init]; param.confSubject = @"会议名称"; param.startTime = 1598759580; param.duration = 15; param.isAutoRecord = NO; param.timeZone = 56; param.vmrId = @"";// vmr会议需要传入vmrId param.callInRestrictionType = HWMCallRestrictionAll; param.confId = @"986927771"; [[HWMBizSdk getBizOpenApi] editConf:param callback:^(NSError *_Nullable error, id _Nullable result) { if (error) { NSLog(@"编辑会议失败:%@", error.localizedDescription); } else { NSLog(@"编辑会议成功"); } }]; }
  • isOpenMicrophoneIncoming 接口描述 该接口用于自定义被邀入会时麦克风的开关状态。 注意事项 如果设置除主持人外的与会方入会后自动静音则该自定义无效果; 方法定义 1 - (BOOL)isOpenMicrophoneIncoming; 参数描述 无 示例代码 1 2 3 4 /// 被邀入会时是否打开麦克风 - (BOOL)isOpenMicrophoneIncoming { return NO; }
共100000条