如何用几行代码构建 iOS 视频通话应用

随着数字通信的快速发展,应用间通话成为一项令人兴奋的尝试。虽然在 iOS 应用中添加音频/视频通话功能很诱人,但这并不是一件容易的事。这是因为从头开始构建它需要大量的编码和复杂的集成。 

这正是 EnableX CallKit 框架发挥作用的地方。它使这个过程变得非常简单和容易,你不需要投入大量时间和精力来编写无数行代码!

详细教程“如何构建 iOS 视频通话应用程序”介绍如何利用基于WebRTCEnableX V ideo框架EnableX CallKit您的应用程序上使用拨号界面启用音频视频功能

什么EnableX 调用 UI 框架?

一个 框架可以帮助 开发人员仅用几行代码即可应用程序中启用音频和视频功能就是这样该框架由两部分组成:

  1. EnableX UIKit – 基于原生 UI 组件构建
  2. EnableX iOS音频/视频 调用框架

EnableX CallKit 框架:解决的问题

在深入研究之前,让我们先了解一些你需要知道的事情。之前,我们引入了 iOS SDK,以便你可以构建具有音频/视频功能的 iOS 视频通话应用程序。但它仍然需要开发人员创建通话 UI。此外,所有与通话相关的事件也需要编码。最重要的是,它仍然需要开发人员进行大量编码。

为了使其变得简单快捷,EnableX 引入了 UIKit。一旦将其添加到项目中,它就会自动安装所需的 iOS SDK,并自动处理所有 UI 和呼叫相关事件。它还有助于创建 100% 原生 UI。因此,借助此功能,开发人员只需几行代码即可将音频/视频功能添加到应用程序中。UIKit 支持实时视频聊天,还可以管理所有与呼叫相关的事件。现在的问题是,当您进入房间并想要添加其他参与者/用户加入会议时,需要通知他们。这可以通过创建事件来向最终用户(或参与者)发送通知来实现。但为此,他们端需要一个呼叫 UI,否则他们无法加入通话。这是无缝音频或视频通话体验的基本功能。但是,这又需要大量的编码。   

Apple 的 CallKit 试图通过处理 UI 部分来解决此问题,但管理通知相关事件的问题仍然存在。  

EnableX 引入了 CallKit 框架来解决这些问题。它智能地复制了 CallKit 框架的所有原生类。它将所有类包装成一个统一的类,并在内部管理与调用相关的事件。借助 EnableX CallKit,开发人员现在只需编写 4-5 行代码,而不是通常的 800-1,000 行。

*通知可以由 APNS 或任何第三方通知提供商服务处理。  

* 如果您想通过通知打开 CallKit,请在证书上启用 VoIP 服务。

注意:要试用此代码,请使用搭载 iOS 12.0 或更高版本的 iPhone。  

注意:模拟器不支持CallKit。

构建 iOS 视频通话应用的先决条件

  1. 需要对 Swift/objective-C 和 Xcode 有基础到中级的理解。  
  2. 需要在后台模式下的应用程序中启用 IP 语音功能。   
  3. 要访问教程,请创建一个EnableX 开发者账户。  
  4. 需要Xcode 10或更高版本。 
  5. 您需要 iOS 12 或更高版本才能安装 EnableX CallKit。

现在让我们一步步了解如何构建简单、无缝PP – to – PP呼叫机制首先安装EnableX CallKi 

  • 使用 CocoaPods 安装项目文件和其他依赖项。
  • 要安装 Cocoa Pods,请访问Cocoa Pods“入门网页。
    打开您的项目 podfile 并添加pod“Enx_CallKit_iOS”。 
  • 在终端中,转到您的项目目录并输入“pod install”。 
  • 使用新的 *.xcworkspace 文件在 Xcode 中重新打开您的项目。

就这样,您已经安装完毕 !但在继续之前,您需要了解有关EnableX CallKit框架一些基本知识

理解EnableX

让我们 来看看nable Classes是什么以及它们的用途

  1. EnxRtc:为开发人员提供一种连接会议室并加入的方式。 
  2. EnxRoom:处理与 EnableX 媒体通信的各种房 国家明智的电话号码数据 间相关功能,例如连接到 EnableX 会议室的端点、发布自流以及订阅远程流。 
  3. EnxStream:管理所有媒体流相关的功能,如发起、配置、传输流到 EnableX 媒体服务器等,还用于接收需要播放的流端点。 
  4. EnxPlayerView:它在EnxPlayerview上显示视频流。

如果您想 了解更多信息查看Enable X 官方开发文档

国家明智的电话号码数据

EnableX Call it 框架行为和回调

第一步是导入Enx_CallKit_iOS 。然后,创建EnxCallKit 对象

例如: 

 var callManager = EnxCallKit(self)  

首先,您需要传递接收事件回调的类的实例。您可以在应用上 CNB 目录 收到推送通知后打开 EnableX CallKit UI。

例如: 

用户需要在调用UI加载Λαμαρίνα: 4 τομείς που επωφελούνται από τη διαδικασία μετασχηματισμού添加后台任务一旦UI加载结束后台任务应该关闭这样的原因简单一个应用在另一个应用打开前一个应用也在后台保持打开状态

要结束通话,请使用以下 API:

调用管理器.endCall ()

用户接到电话EnableX CallKit开始通知用户 的行为

例如: 

  • 接听电话:func callAnswer():当你接到电话时 
  • 呼叫被拒绝:func callReject():当你拒绝呼叫时
  • 呼叫超时:func callTimeOut():当你在 45 秒内没有响应呼叫时 
  • 通话结束:func callEnd():当你结束通话时 
  • 呼叫保持:func callHold():当你保持通话时

通过CallKit接到电话加入EnableX房间必须创建一个访问令牌

生成访问令牌

每个用户都需要一个唯一的访问令牌才能连接到房间。此步骤通常通过Rest API 的调用来完成。 

要生成访问令牌和房间 ID,请使用下面提供的链接

要加入 EnableX 房间,用户必须拥有来自 EnableX 服务器和 EnableX iOS SDK 的访问令牌。  

该令牌可以通过使用 EnableX UIKit 或 EnableX 音频/视频框架生成:

  • 使用 EnableX UIKit 框架 

 通过 pod ‘Enx_UIKit_iOS’ 安装 EnableX UIKit。  

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注