如何实现音视频通话
以IOS为例介绍使用 NERTC SDK 实现音视频通话的基础步骤:1、集成SDK;2、实现音视频通话;3、初始化;4、设置本地视图;5、设置本地视频画布;6、加入频道;7、参数说明;8、设置远端视图;9、监听远端用户进出频道;10、设置远端视频画布;11、监听远端视频流发布;12、订阅远端视频流;13、音频流;14、离开频道;15、销毁音视频实例。
1、集成SDK
CocoaPods集成
集成前,请先前往SDK下载页面查看当前最新版本,并查询本地仓库中对应的版本是否为最新版本。若不是最新版本,建议先更新本地仓库,以确保可以集成最新的SDK版本。
至此, NERTC SDK 已经导入完成
手动导入SDK集成
- 请先前往SDK下载页获取当前最新版本。
- 将解压得到的 NERtcSDK.framework 和 NMCBasicModuleFramework.framework 文件拷贝到工程项目文件夹下。
- 以 Xcode Version 11.5 为例,进入TARGETS > Project Name > General > Frameworks, Libraries, and Embedded Content 菜单,点击 +,再点击 Add Other…,将上述解压得到的SDK文件添加进去。同时,将Embed 属性设置为 Embed & Sign,以使得SDK动态库和应用签名保持一致。
至此, NERTC SDK 已经导入完成。
2、实现音视频通话
以IOS为例介绍如何使用 NERTC SDK 实现音视频通话,主要流程如下图所示:
*此处Server指的是云信 SDK Sever
3、初始化
引入头文件
#import <NERtcSDK/NERtcSDK.h>
执行初始化
4、设置本地视图
启动视频流
- API描述
- 示例代码
5、设置本地视频画布
启动视频流后,可以设置本地视频画布,用来显示本地采集的视频画面。
- API描述
- 示例代码
设置成功后,即可显示本地视频画面。
6、加入频道
加入频道前,请确保已完成初始化相关事项。若您的业务中涉及呼叫邀请等机制,可以使用信令。
- API描述
7、参数说明
- token:频道token。
支持传入以下内容:
空字符串。该种方式需要先开通非安全模式。安全性不高,建议在产品正式上线前转为安全模式。
安全认证签名密钥。安全模式下必需。若未传入正确的token将无法进入频道。建议使用安全模式。
- channelName:频道名称,传入相同频道名称的用户会进入同一个通话频道。
- uId:用户的少数标识Id,频道内每个用户的 UID 必须是少数的。
- 示例代码
8、设置远端视图
视频通话过程中,除了要显示本地的视频画面,通常也要显示参与通话的其他用户的远端视频画面。
9、监听远端用户进出频道
- API描述
10、设置远端视频画布
监听到远端用户加入频道后,可以设置远端视频画布,用来显示远端用户的视频画面。
- API描述
- 示例代码:
11、监听远端视频流发布
当频道中的其他用户有视频流发出/关闭时,分别会走入以下回调:
- API描述
12、订阅远端视频流
在设置完远端视频画布后,且监听到远端用户有视频发布时,可以订阅远端用户的视频流。
- API描述
- 示例代码
订阅成功后,即可显示远端的视频画面。
13、音频流
在 NERtcSDK 中,本地音频的采集发布和远端音频订阅播放是默认启动的,正常情况下无需开发者主动干预。
14、离开频道
当通话结束,需要离开频道,可以调用以下接口:
- API描述
- 示例代码
执行完 leaveChannel 方法后,SDK 会触发离开频道回调通知开发者:
- API描述
- 示例代码
15、销毁音视频实例
释放当前的 NERtcEngine 实例,建议在 App 确定不再需要使用 NERtcEngine 实例时,通过该接口释放 NERtcEngine 实例的对象资源。
- API描述
- 示例代码
以上就是实现音视频通话的详细解说,按照如上步骤就可以完成。
拓展阅读
音视频通话包括的基础功能
- 加入/离开通话
- 语音/视频通话
- 音频/视频开启与关闭
在基础类功能之上可以引入美颜、变声等更多高级的玩法,先暂不做展开。