如何实现音视频通话

网易智企 TOP1 127

以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 实现音视频通话,主要流程如下图所示:

Generated
Generated

*此处Server指的是云信 SDK Sever

3、初始化

引入头文件

#import <NERtcSDK/NERtcSDK.h>

执行初始化

C:\Users\shushujuan\Downloads\carbon (1).png

4、设置本地视图

启动视频流

  • API描述
C:\Users\shushujuan\Downloads\carbon (2).png
  • 示例代码
C:\Users\shushujuan\Downloads\carbon (3).png

5、设置本地视频画布

启动视频流后,可以设置本地视频画布,用来显示本地采集的视频画面。

  • API描述
C:\Users\shushujuan\Downloads\carbon (4).png
  • 示例代码
C:\Users\shushujuan\Downloads\carbon (5).png

设置成功后,即可显示本地视频画面。

6、加入频道

加入频道前,请确保已完成初始化相关事项。若您的业务中涉及呼叫邀请等机制,可以使用信令。

  • API描述
C:\Users\shushujuan\Downloads\carbon (6).png

7、参数说明

  • token:频道token。

支持传入以下内容:

空字符串。该种方式需要先开通非安全模式。安全性不高,建议在产品正式上线前转为安全模式。

安全认证签名密钥。安全模式下必需。若未传入正确的token将无法进入频道。建议使用安全模式。

  • channelName:频道名称,传入相同频道名称的用户会进入同一个通话频道。
  • uId:用户的唯一标识Id,频道内每个用户的 UID 必须是唯一的。
  • 示例代码
C:\Users\shushujuan\Downloads\carbon (9).png

8、设置远端视图

视频通话过程中,除了要显示本地的视频画面,通常也要显示参与通话的其他用户的远端视频画面。

9、监听远端用户进出频道

  • API描述
C:\Users\shushujuan\Downloads\carbon (8).png

10、设置远端视频画布

监听到远端用户加入频道后,可以设置远端视频画布,用来显示远端用户的视频画面。

  • API描述
C:\Users\shushujuan\Downloads\carbon (11).png
  • 示例代码:
C:\Users\shushujuan\Downloads\carbon (12).png

11、监听远端视频流发布

当频道中的其他用户有视频流发出/关闭时,分别会走入以下回调:

  • API描述
C:\Users\shushujuan\Downloads\carbon (13).png

12、订阅远端视频流

在设置完远端视频画布后,且监听到远端用户有视频发布时,可以订阅远端用户的视频流。

  • API描述
C:\Users\shushujuan\Downloads\carbon (15).png
  • 示例代码
C:\Users\shushujuan\Downloads\carbon (16).png

订阅成功后,即可显示远端的视频画面。

13、音频流

在 NERtcSDK 中,本地音频的采集发布和远端音频订阅播放是默认启动的,正常情况下无需开发者主动干预。

14、离开频道

当通话结束,需要离开频道,可以调用以下接口:

  • API描述
C:\Users\shushujuan\Downloads\carbon (17).png
  • 示例代码
C:\Users\shushujuan\Downloads\carbon (18).png

执行完 leaveChannel 方法后,SDK 会触发离开频道回调通知开发者:

  • API描述
C:\Users\shushujuan\Downloads\carbon (20).png
  • 示例代码
C:\Users\shushujuan\Downloads\carbon (21).png

15、销毁音视频实例

释放当前的 NERtcEngine 实例,建议在 App 确定不再需要使用 NERtcEngine 实例时,通过该接口释放 NERtcEngine 实例的对象资源。

  • API描述
C:\Users\shushujuan\Downloads\carbon (22).png
  • 示例代码
C:\Users\shushujuan\Downloads\carbon (23).png

以上就是实现音视频通话的详细解说,按照如上步骤就可以完成。

拓展阅读

音视频通话包括的基础功能

  • 加入/离开通话
  • 语音/视频通话
  • 音频/视频开启与关闭

在基础类功能之上可以引入美颜、变声等更多高级的玩法,先暂不做展开。


本文作者:网易云信

回复

我来回复
  • 暂无回复内容

联系我们
关注微信
关注微信
分享本页
返回顶部
PingCode 比 Jira 更好用的研发管理工具。免费试用