环境准备
- iOS 10.0 及以上版本
- Xcode 10.0 及以上版本
step 1:导入 SDK 并设置 App 权限
导入 SDK
1、在您的Podfile 文件中添加以下依赖。
说明: 如果无法安装 MeetingKit 最新版本,执行以下命令更新本地的 CocoaPods 仓库列表:
如果,还是拉取不到最新版本可以尝试指定 MeetingKit 的源:
配置 App 权限
使用音视频功能,需要授权麦克风、摄像头以及相册的使用权限。在 App 的 Info.plist 中添加以下几项,分别对应麦克风、摄像头和相册在系统弹出授权对话框时的提示信息。step 2:登录和登出
登录
在调用 SDK 的任何其他函数之前,需要进行 SDK 登录操作,在您的项目中添加如下代码,它的作用是通过调用 MeetingKit 中的相关接口完成会议组件的初始化。这个步骤非常关键,因为只有在登录成功后才能正常使用 MeetingKit 的各项功能:登出
step 3:创建房间
构建会议参数
会议参数由很多的字段构成,但通常您只需要关注特定几个字段,详情可参看 SEAMeetingParam。- 下表描述了
**SEAMeetingParam**对象的部分属性。
| 参数名 | 必填 | 描述 |
|---|---|---|
| title | 是 | 会议标题 |
| content | 否 | 会议说明 |
| password | 否 | 会议密码 |
创建房间
创建SEAMeetingParam 对象后,调用 SDK 的 createRoom 函数创建云会议房间。
step 4:加入和离开房间
加入房间之前我们需要为组件设置委托,用于订阅组件的各类事件通知。设置委托
若要订阅委托事件,必须创建MeetingKitDelegate 的实例,并使您的类符合 MeetingKitDelegate 协议。
实现回调事件
- 错误事件回调
- 进入房间事件回调
- 远端用户加入房间回调
- 远端用户离开房间回调
- 用户摄像头状态变化回调
- 用户麦克风状态变化回调
创建加入会议参数
在调用 enterRoom 接口时,需要填写 SEAMeetingEnterParam 关键参数,详情可参看 SEAMeetingEnterParam。加入房间
创建SEAMeetingEnterParam 对象后,调用 SDK 的 enterRoom 函数加入云会议房间。
值得注意的是,该方法的成功参数不能作为加入房间的真实情况,仅用于接口层面的调用成功使用,即:接口调用结束。要想确认加入房间是否真实成功,需要通过上述委托监听 onEnterRoom 事件来实现。
离开房间
调用该接口会让用户离开自己所在的房间,并释放摄像头、麦克风、扬声器等设备资源。 等资源释放完毕之后,SDK 会通过onSuccess回调向您通知。 如果您要再次调用enterRoom:(),建议等待onSuccess回调到来之后再执行之后的操作,以避免摄像头或麦克风被占用等异常问题。
step 5:打开和关闭摄像头
请求开启或关闭摄像头后,服务会通过一系列逻辑确定用户的摄像头状态。此时,组件会收到onUserCameraStateChanged事件。
打开摄像头
关闭摄像头
需要注意的是,以上方法的成功参数不能作为摄像头状态的真实情况,仅用于接口层面的调用成功使用,即:接口调用结束。为保证摄像头状态客户端与服务端的一致性,需要通过委托监听 onUserCameraStateChanged 事件来实现。
step 6:打开和关闭麦克风
请求开启或关闭麦克风后,服务会通过一系列逻辑确定用户的麦克风状态。此时,组件会收到onUserMicStateChanged事件。
打开麦克风
关闭麦克风
需要注意的是,以上方法的成功参数不能作为麦克风状态的真实情况,仅用于接口层面的调用成功使用,即:接口调用结束。为保证麦克风状态客户端与服务端的一致性,需要通过委托监听 onUserMicStateChanged 事件来实现。
step 7:订阅和取消订阅远端用户画面
订阅远端用户画面
- 下表描述了
SEAVideoStreamType视频流类型的所有值。
| 枚举类型 | 枚举值 | 描述 |
|---|---|---|
| SEAVideoStreamTypeBig | 0 | 高清大画面,一般用来传输摄像头的视频数据 |
| SEAVideoStreamTypeSmall | 1 | 低清小画面,小画面和大画面的内容相同,但是分辨率和码率都比大画面低,因此清晰度也更低 |
| SEAVideoStreamTypeScreen | 2 | 屏幕共享流 |
取消订阅远端用户画面
取消订阅指定远端用户的所有视频画面
取消订阅所有远端用户的视频画面
注:取消订阅成员视频画面后,组件会自行释放渲染控件。