-
joinConf 接口描述 该接口用于通过会议ID和密码加入已经存在的会议。加入会议的方式有两种: 会议ID+会议密码入会:手动输入会议ID和会议密码密码。 会议ID+Random入会:通过邮件会议通知中的会议链接入会时(会议链接如:https://bmeeting.huaweicloud.com/#/j/981924330/e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659),链接里面的是会议ID(即举例中的981924330)和会议的Random码(即举例中的e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659)。 注意事项 ID入会参数使用子类HWMJoinConfParam,random入会参数使用子类HWMRandomConfParam 在登录和未登录状态下都可以调用该接口。 实际业务处理结果在对应的callback回调中。 方法定义 1 - (void)joinConf:(HWMBaseJoinConfParam * _Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback;
参数描述 表1 HWMBaseJoinConfParam 参数 是否必须 类型 描述 confId 是 NSString * 会议ID。 nickname 否 NSString * 会议昵称。在已登录状态下可为空,已登录时为空将使用登录的用户名作为会场名。 isCameraOn 是 BOOL 是否打开摄像头,默认关闭。 isMicOn 是 BOOL 是否打开麦克风,默认打开。 isSpeakerOff 否 BOOL 是否关闭扬声器,默认不关闭。 表2 HWMJoinConfParam参数说明,继承HWMBaseJoinConfParam 参数 是否必须 类型 描述 password 否 NSString * 会议密码。若希望以主持人身份入会,必须传入主持人密码。若希望以来宾身份入会,会议要求来宾密码时,必须传入来宾密码,会议不要求来宾密码时,可以为空。 isStopConflictConf 否 BOOL 强制结束和当前VMR会议资源冲突的会议(必须是vmr资源的拥有者才有权限,否则无效) 表3 HWMRandomConfParam参数说明,继承HWMBaseJoinConfParam 参数 是否必须 类型 描述 random 是 NSString * random入会时传入。 domain 否 NSString *
域名 。离线入会时使用。 示例代码 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)joinMeeting {
HWMJoinConfParam *param = [[HWMJoinConfParam alloc] init];
param.confId = getConfId();
param.password = getPassword();
param.nickname = getNickName();
param.isCameraOn = NO;
param.isMicOn = YES;
[[HWMSdk getOpenApi] joinConf:param callback:^(NSError * _Nullable error, id _Nullable result) {
if (error) {
NSLog(@"入会失败%@", error.localizedDescription);
}else{
NSLog(@"入会成功");
}
}];
}
/// random入会
- (void)joinMeetingByRandom {
HWMRandomConfParam *param = [[HWMRandomConfParam alloc] init];
param.confId = getConfId();
param.random = getRandom();
param.nickname = getNickName();
param.isCameraOn = NO;
param.isMicOn = YES;
[[HWMSdk getOpenApi] joinConf:param callback:^(NSError * _Nullable error, id _Nullable result) {
[self hideLoading];
if (error) {
NSLog(@"入会失败%@", error.localizedDescription);
}else{
NSLog(@"入会成功");
}
}];
}
-
startP2PConf 接口描述 该接口用于发起立即会议。 注意事项 1. 实际业务处理结果在对应的callback回调中。 方法定义 - (void)startP2PConf:(HWMStartP2PConfParam *)param callback:(_Nonnull HWMSDKCreateConfCompleteHandler)callback; 参数描述 参数 是否必须 类型 描述 param 是 HWMStartP2PConfParam * 发起立即会议信息。 表1 HWMStartP2PConfParam 说明 参数 是否必须 类型 描述 calleeInfo 是 HWMCalleeInfo * 被叫信息。 callerInfo 是 HWMCallerInfo * 主叫信息。 mediaType 是 HWMMediaType 媒体类型。 isGuestJoinConfWithoutPwd 是 BOOL 是否来宾免密码入会。默认NO。 confAllowJoinUser 是 HWMJoinConfRestrictionType 允许入会的用户类型。默认HWMJoinConfRestrictionAll。 表2 HWMCallerInfo 说明 参数 是否必须 类型 描述 nickName 否 NSString * 主叫姓名。 表3 HWMCalleeInfo 说明 参数 是否必须 类型 描述 nickName 否 NSString * 被叫姓名。 number 是 NSString * 被叫号码。如果填分配给账号的sip号码(如+99111244216210249)则呼叫该账号的App;如果填PSTN号码(如18700000000),则通过VoIP网关呼叫该号码,前提是该企业已开通PSTN呼叫权限。与thirdUserId二选一,账号密码鉴权时使用。 thirdUserId 是 NSString * 第三方用户ID。与number二选一,App ID鉴权时使用。 type 是 HWMConfAttendeeType 用户类型。默认 HWMConfAttendeeTypeNormal。 orgId 否 NSString * 企业ID。 表4 枚举HWMConfAttendeeType说明 枚举值 描述 HWMConfAttendeeTypeNormal 会议软终端用户。 HWMConfAttendeeTypeMobile 用户手机号码。 返回值 无 示例代码 - (void)startP2PConf {
// 设置被叫信息
HWMCalleeInfo *calleeInfo = [[HWMCalleeInfo alloc] init];
calleeInfo.nickName = @"被叫姓名";
calleeInfo.number = @"123456";
calleeInfo.thirdUserId = @"123456";
// 设置主叫信息
HWMCallerInfo *callerInfo = [[HWMCallerInfo alloc] init];
callerInfo.nickName = @"主叫姓名";
HWMStartP2PConfParam *param = [[HWMStartP2PConfParam alloc] init];
// 设置媒体类型
param.mediaType = HWMMediaTypeVideo;
param.calleeInfo = calleeInfo;
param.callerInfo = callerInfo;
// 调用SDK接口
[[HWMSdk getOpenApi] startP2PConf:param callback:^(NSError * _Nullable error, HWMCreateConfResult * _Nullable result) {
if (error) {
[UIUtil showMessageWithError:error];
} else {
[UIUtil showMessage:[NSString stringWithFormat:@"会议ID:%@, isP2PConf:%@", result.confId, result.isP2PConf?@"YES":@"NO"]];
}
}];
}
-
功能列表 请使用Google Chrome 73及以上版本、Safari 13及以上版本桌面端浏览器入会,入会流程请参考从桌面端Web入会。 入会后,主要会议控制操作如下表所示。 会议控制操作 主持人 与会者 开启/关闭麦克风 √ √ 开启/关闭视频 √ √ 开启/关闭扬声器 √ √ 选择音视频设备 √ √ 锁定会议 √ - 允许与会者解除静音 √ - 锁定聊天 √ - 锁定共享 √ - 查看与会者列表 √ √ 全场静音/取消全场静音 √ - 改名 √ √ 举手 - √ 共享屏幕、程序、网页 √ √ 聊天 √ √ 分享入会信息 √ √ 云录制 √ - 反馈 √ √ 切换画面视图 √ √ 选看/取消选看 √ √ 广播 √ - 结束会议 √ - 父主题: 会议控制
-
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 程序共享。 HWM_SHARE_TYPE_ALL 全类型共享。和界面点击“共享”按钮效果一致,弹出共享选择框。 表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;
}
-
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资源的拥有者才有权限,否则无效) isCascadingMeeting 否 bool 是否级联会议 confPrefix 否 char[] 入驻式会议企业前缀 返回值 表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修改麦克风、摄像头状态。
-
接口功能 通过邮件会议通知中的会议链接入会时(会议链接如:https://bmeeting.huaweicloud.com/#/j/981924330/e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659), 链接里面的是会议ID(即举例中的981924330)和会议的Random码(即举例中的e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659)。第三方App需要调用本接口加入会议。
-
返回值 表3 循环观看返回值 参数 类型 取值范围 参数说明 success int [0, 1] 响应结果 0:失败 1:成功 data Object 可选, 空对象 成功返回数据。这里返回空。 例如:{"success":1,"data":""} error Object 可选 失败返回错误信息。详细参考表4。 例如:{"success":0,"error":{"id":100666117,"code":151031810,"params":[]}}
-
参数 表1 循环观看参数 参数 类型 取值范围 参数说明 action String {"start", "stop"} 表示开始或停止。 开始"start"、停止"stop"。 time int [2, 3600] 时间间隔 type String {"new", "adjust", "api"} 新次序"new",调整以前次序"adjust"。 智真API固定为"api"。 list list object 循环观看的会场MT号列表。 在循环观看中,需要停止循环观看才可重新设置时间间隔 表2 循环观看的会场MT号列表 参数 类型 取值范围 参数说明 M int [0, 400] 会场M号 T int [0, 400] 会场T号