华为云用户手册

  • 3类接口描述 iOS SDK的接口分为同步Api、异步Api、全局回调。 同步Api:App主动调用SDK的接口,用于完成某项任务。比如初始化接口initWithConfig。 异步Api:调用SDK接口的时候都会以callback回调方式请求结果。 全局回调:由华为云会议服务端或SDK内部触发的事件通知,SDK以 消息通知 接口的形式通知给App。比如会议来电通知onConfStatusChanged。
  • 共享Bundle Id相关说明 ScreenShareExtension插件bundle Id格式: 主App bundle Id + ScreenShareExtension ScreenShareExtensionSetupUI插件bundle Id格式: 主App bundle Id + ScreenShareExtensionSetupUI 例: 主App bundle Id:com.xx.xx ScreenShareExtension插件bundIe Id:com.xx.xx.ScreenShareExtension ScreenShareExtensionSetupUI插件bundIe Id:com.xx.xx.ScreenShareExtensionSetupUI iOS端屏幕共享需要添加iOS Extension并实现相关代码,以下步骤用于说明如何集成SDK进行屏幕共享Extension的开发。
  • 60.10.5更新内容 1、 新增是否开启第三方数据采集配置: 新增是否开启第三方数据采集配置,请见开启第三方视频推流配置 2、 新增自定义接入站点: 新增自定义接入站点配置,请见设置接入站点 3、 自定义会中分享面板参数变更: 自定义会中分享面板,入参新增ShareTypeEnum,请见自定义会中分享面板 4、 加入会议接口参数变更: 加入会议参数变更,JoinConfParam抽为抽象类,修改为使用子类PasswordJoinConfParam或RandomJoinConfParam,请见场景7: 加入会议 父主题: 版本更新内容
  • 设置第三方推流视频镜像 接口描述 该接口用于第三方推流时设置本地视频窗口前置摄像头镜像模式。 注意事项 需要放在UI主线程调用,使用前置摄像头设置左右镜像类型,后置摄像头不能镜像。 方法定义 1 2 3 4 5 /** * 设置本地视频窗口镜像模式 * @param mirrorType 窗口镜像模式 0:不做镜像(默认值) 1:上下镜像(目前未支持) 2:左右镜像 */ void setLocalVideoMirrorType(MirrorType mirrorType); 参数描述 表1 参数说明 参数 是否必须 类型 描述 mirrorType 是 MirrorType 窗口镜像模式 MIRROR_NONE(0, "不做镜像") MIRROR_UP_DOWN(1, "上下镜像")(目前未支持) MIRROR_LEFT_RIGHT(2, "左右镜像") 示例代码 HWMBizSdk.getBizOpenApi().setLocalVideoMirrorType(MirrorType.MIRROR_LEFT_RIGHT)); 父主题: 音视频数据流
  • 会议状态变更通知 在OpenSDKConfig中配置会议UI页面变更相关的通知监听 入会的时候UI创建,离会的时候销毁UI 使用场景 入会场景:onConfDetailNotify 离会场景:onConfEnded、onLeaveConf 弱网提示:onPoorNetworkQualityInfoNotify 立即会议通话记录通知:onP2PConfRecord 注意事项 SDK初始化的时候必须传入这个配置sdkConfig才会生效 示例代码 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 public class CustomNotifyHandler implements CLMNotifyHandler { @Override public void onConfDetailNotify(ConfInfo confInfo) { Log.i(TAG, "confInfo: confId" + confInfo.getConfId() + ", Subject:" + confInfo.getConfSubject()); } @Override public void onPoorNetworkQualityInfoNotify(PoorNetWorkQualityInfo poorNetWorkInfo) { Log.i(TAG, " poorNetWorkInfo : " + poorNetWorkInfo.getUserId() + " , " + " , " + poorNetWorkInfo.getIsLocal() + " , " + poorNetWorkInfo.getVideoStatus() + " , " + poorNetWorkInfo.getAudioStatus() + " , " + poorNetWorkInfo.getShareStatus()); DemoUtil.showToast("CLMNotifyHandler 事件: onPoorNetworkQualityInfoNotify "); } /** * 会议结束后,会收到通知 * @param result 会议结束后的错误码 */ @Override public void onConfEnded(ConfEndedReason result) { Log.i(TAG, "会议已结束"); } @Override public void onLeaveConf(int result) { Log.i(TAG, "您已离开会议"); } } sdkConfig.setNotifyHandler(new CustomNotifyHandler()); 会议结束通知 会议详情通知 会议弱网提示通知 立即会议通话记录通知 添加与会者结果通知 父主题: 通知参考
  • 账号状态变更通知 在OpenSDKConfig中配置登录账号相关通知回调的监听,以监测账号失效等场景 使用场景 账号被踢:onKickedOut Token失效:onTokenInvalid 账号被锁定:onAccountLocked 账号密码错误:onAccountOrPasswordError CA证书校验失败:onCaInvalid 注意事项 SDK初始化的时候必须传入这个配置sdkConfig才会生效 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 sdkConfig.setAccountEventHandle(new IAccountEventHandle() { @Override public void onKickedOut(@Nullable KickOutState kickOutState) { Log.i(TAG, "您的账号在其他终端登录"); } @Override public void onAccountOrPasswordError(@Nullable AccountOrPasswordErrorState accountOrPasswordErrorState) { Log.i(TAG, "onAccountOrPasswordError"); } @Overridepublic void onTokenInvalid(@Nullable TokenInvalidState tokenInvalidState) { // Token失效后,需要进行重新登录(退出并登录),否则会影响创会预约会议等基本功能 Log.i(TAG, "onTokenInvalid"); } @Override public void onAccountLocked(@Nullable AccountLockedState accountLockedState) { Log.i(TAG, "onAccountLocked"); } @Override public void onCaInvalid(@Nullable CaInvalidState caInvalidState) { // CA证书校验失败,需要退出登录 Log.i(TAG, "onCaInvalid"); } }); 父主题: 通知参考
  • 自定义会中通知栏 该接口用于自定义通知栏中的会议通知图标,默认是如图1所示 使用场景 通知栏中通知图标使用和自己应用图标一致的场景 注意事项 1.SDK初始化的时候必须传入这个配置sdkConfig才会生效 图1 自定义会中通知栏 示例代码 1 2 3 4 5 6 sdkConfig.setNotificationStrategy(new INotificationStrategy() { @Override public int resSmallIcon() { return R.mipmap.ic_launcher; } }); 父主题: 界面定制
  • 自定义菜单设置 示例代码 1 2 3 4 ToolBarMenuProxy toolBarMenuProxy = new ToolBarMenuProxy(); toolBarMenuProxy.setConfAudioToolbarHandle(new CustomConfAudioToolbarHandle()); toolBarMenuProxy.setConfVideoToolbarHandle(new CustomConfVideoToolbarHandle()); sdkConfig.setToolBarMenuProxy(toolBarMenuProxy);
  • 设置接入站点 在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 亚太站点 可以自定义默认接入站点:中国站点、亚太站点;选择不同站点,默认登录服务器地址不同。 未设置接入站点,默认接入中国站点。 父主题: 基础配置
  • 自定义会议接听时摄像头/麦克风开关 在OpenSDKConfig中配置是否在接听会议的时候自动打开摄像头或者麦克风入会 接听会议的时候sdk通过该回调接口获取摄像头和麦克风是否打开在入会的时候设置是否开启摄像头麦克风 使用场景 一般应用设置中有是否开启摄像头麦克风的用户设置项,通过自定义该回调接口即可实现会议接听时候的摄像头麦克风的开启情况和用户的设置项保持一致 注意事项 1.摄像头的开启需要先有权限,没有权限的情况下无法开启摄像头 2.SDK初始化的时候必须传入这个配置sdkConfig才会生效 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class MyDeviceStrategyWhenConfAccept implements IDeviceStrategyWhenConfAccept { @Override public boolean isTurnOnCameraWhenConfAccept() { //入会时是否打开摄像头 return DemoUtil.needCustom(NeedCustomType.CONF_OPEN_CAMERA); } @Override public boolean isTurnOnMicWhenConfAccept() { //入会时是否打开麦克风 return DemoUtil.needCustom(NeedCustomType.CONF_OPEN_MIC); } } sdkConfig.setDeviceStrategyWhenConfAccept(new MyDeviceStrategyWhenConfAccept()); 父主题: 基础配置
  • 自定义是否开启会议高清优先 在OpenSDKConfig中配置是否开启会议高清优先的功能 开启高清优先后 1.设为开启高清视频后,可以本端发送高清视频 2.设为开启高清视频后,可以选看高清视频 3.不根据手机性能等因素降低发送的分辨率 使用场景 对会议的视频高清程度有要求的场景 注意事项 1.SDK初始化的时候必须传入这个配置sdkConfig才会生效 会前设置是否开启优先传输高清画质,开启后就会忽略网络及手机性能等因素,优先传输高清画质 示例代码 1 2 OpenSDKConfig sdkConfig = new OpenSDKConfig(Context) .setHighResolutionFirst(true) 父主题: 基础配置
  • 自定义开关会中聊天功能 在OpenSDKConfig中配置是否会中开启聊天功能 开启聊天功能,会中菜单有聊天功能的按钮显示图1 关闭聊天功能,会中菜单没有聊天功能的按钮图2 使用场景 应用中不需要会中聊天的功能,可以屏蔽对应的功能 注意事项 1.SDK初始化的时候必须传入这个配置sdkConfig才会生效 图1 会中聊天开启 图2 会中聊天关闭 示例代码 1 2 OpenSDKConfig sdkConfig = new OpenSDKConfig(Context) .setNeedConfChat(false) 父主题: 基础配置
  • 自定义会议中水印 在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 curActivity) { Bitmap bitmap = BitmapFactory.decodeResource(curActivity.getResources(), R.drawable.watermark); return bitmap; } } sdkConfig.setWatermarkHandle(new CustomWatermarkHandle()); 父主题: 界面定制
  • 自定义日志保存路径 在OpenSDKConfig中配置自定义的SDK日志保存的路径 使用场景 SDK默认的日志路径是/sdcard/Android/data/应用的包名/files/log 用户可以根据自己需要修改日志的存放路径 注意事项 1.自定义日志保存路径后,取日志也确保使用相应的路径,取日志参考获取Android SDK的日志 2.SDK初始化的时候必须传入这个配置sdkConfig才会生效 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 //自定义日志保存路径 public class CustomLoggerHandle implements ILoggerHandle { private Application application; public CustomLoggerHandle(Application application) { this.application = application; } //自定义日志保存地址 @Override public String getLogPath() { return FileUtil.getExternalFilesDir(this.application) + "/log/meeting/"; } } sdkConfig.setLoggerHandle(new CustomLoggerHandle()); 父主题: 基础配置
  • Init 同步初始化 1 HWMSdk.init(Application,OpenSDKConfig) 接口描述 该接口用于初始化SDK,进行一些环境准备工作,调用其他接口之前必须先调用这个接口,只需要调用一次,建议放在Application的onCreate里,尽量提前,sdk内部通过监听activity的生命周期获取当前activity, 跳转界面,否则可能出现界面无法跳转的情况。 注意事项 1. 初始化接口耗时约1-2秒,若对初始化速度有要求,请使用 异步初始化; 2. 请传入正确的Application和OpenSDKConfig对象; 3. 如果不希望在Application的onCreate里调用,需要设置openSDKConfig.setInitOnAppStart(false)。 方法定义 1 2 3 4 5 6 /** * 初始化接口 * @param application 应用application * @param sdkConfig sdk配置对象 */ void init(@NonNull Application application, OpenSDKConfig sdkConfig); 参数描述 表1 参数说明 参数 是否必须 类型 描述 application 是 Application 当前程序的Application对象。 sdkConfig 是 OpenSDKConfig 对SDK配置好参数的对象。 表2 初始化信息OpenSDKConfig 参数 是否必须 类型 描述 appId 是 String App ID。App ID需要开发者自己申请,请参考《开发指南》中的“App ID鉴权介绍”章节。 serverAddress 否 String 服务器地址配置 serverPort 否 String 服务器端口配置 needConfChat 否 Boolean 是否需要会中聊天功能 logKeepDays 否 Integer 配置项-日志保存天数,输入有效范围为3-30,默认值0。0为不按天数删除日志。 注意:输入1和2会转换为3,大于30的值会被转换为30。 isDisableIncomingNotification 否 Boolean 是否禁用来电时自动弹出的通知 isSupportMultiAppLogin 否 Boolean 是否支持同终端多应用登录 示例代码 OpenSDKConfig sdkConfig = new OpenSDKConfig(this) .setAppId(getAppId()) //App ID需要开发者自己申请,申请流程见 App ID申请 HWMSdk.init(this,sdkConfig);
  • 业务流程 接口调用 创建入会参数JoinConfParam。 会议id加入会议使用PasswordJoinConfParam。 会议random加入会议使用RandomJoinConfParam。 1 2 3 4 5 6 7 //加入会议对象 PasswordJoinConfParam passwordJoinConfParam = new PasswordJoinConfParam() .setConfId(getConfId()) //加入会议ID .setNickname(getNickname()) //设置昵称 .setCameraOn(true) //是否开启摄像头 .setMicOn(true); //是否开启麦克风 .setPassword(true) //入会密码 调用joinConf接口加入会议,第1步中的数据作为参数。 处理回调 处理回调中的结果。
  • 业务流程 使用SDK预约会议前,处理用户界面输入的预约会议信息,调用bookConf接口,然后处理回调hwmCallback和消息通知BizNotificationHandler的onConfListChanged。 接口调用 组装数据结构BookConfParam。 调用bookConf开始创建预约会议,第1步中的数据作为参数。 处理回调函数 处理回调函数hwmCallback。 处理消息通知 处理消息通知onConfListChanged。
  • 业务流程 接口调用 创建登录参数AppIdAuthParam。 设置第三方账号的唯一标识。 设置随机字符串。 设置签名信息。 设置该用户所在的企业ID,仅SP模式下需要填写 设置签名过期时间。 设置登录账号的昵称。 设置登录账号的邮箱。 设置登录账号的手机号码。 调用loginByAppid接口进行登录,第1步中的数据作为参数,会议服务器会根据相关参数,如果没有开户则执行开户。 处理回调 处理回调中的结果。
  • 注意事项,使用前必看 需要使用通知方法时,必须注册代理对象。 两种方式: 初始化时,对HWMOpenSDKConfig对象的属性赋值 1 2 3 HWMOpenSDKConfig *config = [[HWMOpenSDKConfig alloc] init]; //示例根据需求使用对应代理 config.globalHandler = [NotifyMessageHandler sharedInstance]; 使用前使用[HWMSdk getSdkConfig]获取初始化对象给属性赋值 1 2 //示例根据需求使用对应代理 [HWMSdk getSdkConfig].globalHandler = [NotifyMessageHandler sharedInstance]; 代理方法必须写在代理对象中 使用代理时保证代理对象存在
  • SDK概述 华为云会议服务为开发者提供Windows、Android、iOS、Mac、Electron、Web的客户端SDK,方便开发者将华为云会议的音频会议、视频会议、桌面共享能力快速集成到自己的应用中。 华为云会议的客户端SDK已经实现了会议中UI界面,包括会场画面显示,会议控制功能,桌面共享等,开发者只需要调用少量接口即可完成华为云会议能力的集成。客户端SDK已经提供的主要UI如下(以Windows SDK为例,其他平台的SDK能力相同,只是界面布局有差异。Web客户端SDK的能力差异较大,详细功能点对比请参考“Android/iOS/Windows/Mac/Web SDK功能对比”)。 会议中的主界面 图1 会中主界面 桌面共享界面 图2 桌面共享界面 会议来电界面 图3 会议来电界面 来电通知界面只有在应用进程没有被系统终止的情况下才能收到来电通知,移动端SDK并不提供VoIP Push能力。 Web端只能主动加入会议,不能被邀请加入会议。 Android/iOS/Windows/Mac/Web SDK功能对比如下: 表1 Android/iOS/Windows/Mac/Web SDK功能对比 分类 功能项 Windows Mac Android iOS Web桌面版 备注 会议管理 会议预约 √ √ √ √ x 接口 创建立即会议 √ √ √ √ x 接口 编辑会议 √ √ √ √ x 接口 取消会议 √ √ √ √ x 接口 会议列表 √ √ √ √ x 接口 查询会议详情 √ √ √ √ x 接口 查询云会议室 √ √ √ √ x 接口 修改云会议室信息 √ √ √ √ x 接口 加入会议 通过会议ID加入会议 √ √ √ √ √ 接口 通过会议链接(Random码)加入会议 √ √ √ √ √ 接口 被邀加入会议 √ √ √ √ x UI 与会者会控 自己麦克风静音 √ √ √ √ √ UI 自己扬声器闭音 √ √ √ √ √ UI 音频设备切换 √ √ √ √ √ UI 摄像头切换 √ √ √ √ √ UI 修改会场名称 √ √ √ √ √ UI 举手 √ √ √ √ √ UI 选看 √ √ √ √ √ UI 离开会议 √ √ √ √ √ UI 主持人会控 全场静音 √ √ √ √ √ UI 静音其他与会者 √ √ √ √ √ UI 移除与会者 √ √ √ √ √ UI 转移主持人 √ √ √ √ √ UI 结束会议 √ √ √ √ √ UI 启动录制 √ √ √ √ √ UI 锁定会议 √ √ √ √ √ UI 锁定共享 √ √ √ √ √ UI 广播单画面 √ √ √ √ √ UI 广播多画面 √ x x x x UI 设置联席主持人 √ √ √ √ x UI 画面布局 桌面:演讲者模式 √ √ - - √ UI 桌面:画廊模式 25画面 25画面 - - 6画面 UI 桌面:画中画模式 √ √ - - x UI 移动:大画面 - - √ √ - UI 移动:均分画面 - - √ √ - UI 语音激励 √ √ √ √ √ UI 视频分辨率 发送最高分辨率 1080P(默认720P) 720P(默认360P) 720P 720P 360P UI 接收最高分辨率 1080P(默认720P) 720P(默认360P) 720P 720P 720P UI 桌面共享分辨率 发送最高分辨率 4K 1080P 4K 4K 1080P UI 接收最高分辨率 4K 1080P 4K 4K 1080P UI 会议共享 发起屏幕共享 √ √ √ √ √ UI 观看屏幕共享 √ √ √ √ √ UI 发起白板共享 √ √ x x x UI 观看白板共享 √ √ √ √ √ UI 发起程序共享 √ √ x x √ UI 观看程序共享 √ √ √ √ √ UI 标注 √ √ √ √ x UI 远程控制 √ √ x x x UI 聊天 聊天窗口 √ √ √ √ √ UI 弹幕 √ √ √ √ √ UI 点对点通话 视频通话 √ √ √ √ x UI 音频通话 √ x √ √ x UI 其他 美颜 √ x √ √ x UI 虚拟背景 √ √ √ √ x UI 语音会议 √ √ √ √ x UI AI字幕 √ √ x x x UI Web SDK仅支持桌面版(Windows和Mac的Chrome浏览器和Safari浏览器),不支持手机版(Android和iOS)。 集成Web SDK时如果需要使用“会议管理”功能,请在服务后台调用服务端API的“会议管理”接口。 Electron SDK的功能与Windows和Mac SDK功能相同。
  • 第三方客户端调用Exit接口,需要等待一段时间后才能退出 客户案例: 某客户集成了会议Win SDK,客户应用退出后,发现会议进程仍在运行,exit回调时间很长。 原因分析: 该客户在logout的回调里面调用exit接口,exit接口要等待logout的回调结束才能销毁资源,logout的回调在等exit退出,造成线程死锁,导致如上现象。 正确方案: 在logout回调结束后,再调用exit接口,详见下图。点击查看更多接口调用时序图。 图1 接口调用时序图 父主题: Windows SDK
  • 参数描述 表1 参数说明 参数 类型 描述 thirdAccount NSString * appid登录场景下优先使用此字段。 account NSString * 账号 密码登录场景下 优先使用此字。 number NSString * 跨企业场景优先使用此字段。 completionBlock void(^)(NSError *_Nullable error, NSString *_Nullable headImagePath) 结果回调。
  • 方法定义 1 - (void)downloadHeadPortraitWithThirdAccount:(NSString *)thirdAccount account:(NSString *)account number:(nonnull NSString *)number completionBlock:(void(^)(NSError *_Nullable error, NSString *_Nullable headImagePath))completionBlock;
  • 方法定义 1 virtual void OnQueryContactAvatar(const char account[HWM_MAX_ACCOUNT_LEN], const char thirdUserId[HWM_MAX_ACCOUNT_LEN], const char sipNumber[HWM_MAX_NUMBER_LEN], char* avatarPath,int pathLen) {};
  • 参数描述 表1 参数 类型 描述 account char[] 登录华为云会议的账号信息。 thirdUserId char[] 登录华为云会议的第三方用户Id。 sipNumber char[] 账号对应的sip号码。 avatarPath char* 查询通讯录返回的头像路径。 pathLen int 最大路径长度。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /** * 查询外部通讯录头像 */ void demoNotifyProc::OnQueryContactAvatar(const char* account, const char* thirdUserId, const char* sipNumber, char* avatarPath, int pathLen) { Cdemo* app = (Cdemo*)AfxGetApp(); if (!app || (strlen(account) == 0 && strlen(thirdUserId) == 0 && strlen(sipNumber) == 0)) { //窗口已经关闭或数据为空 return; } string sAccount = account; string sThirdUserId = thirdUserId; string sSipNumber = sipNumber; /* 根据用户层自己的逻辑 + account thirdUserId sipNumber 获取到头像图片路径信息并复制到avatarPath char数组内*/ // 测试使用时,在D:\\picture\\路径下放置一张图片test.png strcpy_s(avatarPath, pathLen, "D:\\picture\\test.png"); }
  • 注意事项 1 收到该通知的前提需要打开 7.5.3.1 表2 frame对象介绍 中的isUseExternalConfInfoWnd开关为true。 2 通知方法OnShowExternalConfInfoWnd中添加线程切换,抛到用户自己线程中,再显示用户自定义的 会议信息框(会议信息框显示需做置顶操作)。 3 显示用户自定义的会议信息框接口中,需要添加定时器检测(2s): 鼠标若未移入自定义会议信息框区域,定时器时间到则销毁会议信息框。 鼠标若移入自定义会议信息框区域,则待鼠标移出信息框区域直接销毁会议信息框。 (若未添加3处理,无法覆盖所有的场景销毁会议信息框)
  • 60.11.6更新内容 新增会议支持自动录制,新增允许自动录制会议isAutoRecord字段, 注意:会议开始后是否自动开启录制,默认关闭。开启自动录制会议时必须开启录制会议 创建会议HWMCreateConfParam参数说明 预约会议、编辑会议HWMOrderConfParam参数说明 新增自定义会议来电接听按钮显示 新增SDK库:HWRTCEngine.framework,具体使用请见新增HWRTCEngine库 父主题: 版本更新内容
  • changeVmrInfo 接口描述 该接口用于修改云会议室信息。 注意事项 尽量只修改来宾密码 方法定义 1 - (void)changeVmrInfo:(HWMModifyVMRParam *)info callback:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 表1 HWMModifyVMRParam参数说明 参数 是否必须 类型 描述 vmrId 是 NSString * 云会议室唯一ID guestPwd 是 NSString * 来宾密码 chairPwd 是 NSString * 主持人密码 vmrName 是 NSString * 云会议室名称 allowGuestStartConf 是 BOOL 允许来宾在主持人之前入会 confAllowJoinUser 否 HWMCallInRestrictionType 允许入会范围 isOpenWaitingRoom 否 BOOL 是否启用等候室 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 /// 修改云会议信息 - (void)changeVmrInfo { HWMModifyVMRParam * vmrInfo = [[HWMModifyVMRParam alloc] init]; vmrInfo.guestPwd = getGuestPwd(); vmrInfo.chairPwd = getChairPwd(); vmrInfo.vmrName = getVmrName(); vmrInfo.vmrId = getVmrId(); [[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 20 21 /// 编辑会议 - (void)editConf { HWMOrderConfParam * param = [[HWMOrderConfParam alloc] init]; param.confSubject = @"会议名称"; param.startTime = 1598759580; param.duration = 15; param.confType = HWMConfTypeVideo; param.isNeedConfPwd = YES; param.isRecordOn = 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(@"编辑会议成功"); } }]; }
共100000条