使用WebRTC在iOS上实现语音/视频通话(调查)


我决定将WebRTC用于某个项目,但是我很难通过Google收集信息。为了便于组织,我总结了如何在iOS上使用WebRTC。

*本文介绍了iOS方面的实现,没有提及基础结构配置或服务器端实现。

什么是WebRTC?

用于在浏览器和移动应用程序上实现实时通信(RTC)(例如语音呼叫和视频呼叫)的技术。它受Google,Mozilla,Opera等的支持。官方页面本身似乎由Google Chrome小组负责。

支持的浏览器和平台

由于它是由Google,Mozilla,Opera开发的,因此它支持Android和iOS以及每个公司的浏览器。

  • 铬合金
  • 火狐浏览器
  • 歌剧
  • 安卓
  • 的iOS

如何拨打视频或语音电话?

有一个官方提供的示例。此外,还提供了利用WebRTC的WebRTC示例。但是,所有这些都是可在浏览器上运行的示例。

  • 视频电话:
    对等连接

  • 语音通话:
    对等连接:仅音频

不幸的是,没有官方的iOS示例!
但是,有ISBX / apprtc-ios,它是官方AppRTC的iOS实现。
克隆并构建存储库时,将要求您输入Room ID,因此请正确输入,在另一个人的终端上构建相同的应用程序,输入相同的Room ID,然后将开始与该人进行视频聊天。

是否有适用于iOS的框架?

正式会要求您自行构建,但它是如此糟糕有些人很容易将其与Cocoapod或Carthage一起放入。

  • ISBX / apprtc-ios

这是前面介绍的AppRTC的iOS实现。如果要按原样使用AppRTC,也可以将其与pod一起安装。

1
pod install AppRTC

还通过代码示例总结了如何初始化SSL Peer Connection和添加视频聊天。

  • libjingle_peerconnection
    上面的ISBX / apprtc-ios示例也使用此框架。 WebRTC头家族中包含的iOS构建脚本是独立修改的,并且所生成的二进制文件由Cocoapods作为框架进行分发。

  • Anakros / WebRTC
    可以与CocoaPods或Carthage一起安装。它与libjingle_peerconnection几乎相同,但是某些头文件不同。
    我正在使用https://chromium.googlesource.com/external/webrtc/上的webrtc/build/ios/build_ios_libs.sh进行构建。

这与i386,x86-64体系结构不兼容,因此无法使用模拟器来构建。

它是从相同的WebRTC二进制文件生成的,因此选择哪个都不重要。
我选择了可??以与Carthage一起安装的Arakros / WebRTC。

摘要/我在想下一步

针对iOS编写的文章很少,调查很困难,但是我希望它对那些必须面对WebRTC的人有所帮助。
apprtc-ios是用Objective-C编写的,即使您使用其他库,您也必须自己创建模型和包装器,因此下一次我想将在开发中获得的知识用作Swift库。

资源

  • WebRTC:WebRTC官方页面

  • WebRTC iOS:WebRTC iOS页面

  • 与WebRTC的实时通信:浏览器中的样本收集

  • ISBX / apprtc-ios:基于WebRTC的本地iOS视频聊天应用程序:ISBX的iOS实现

  • libjingle_peerconnection
  • GitHub --Anakros / WebRTC
  • iOS上的WebRTC入门是以下示例的实现:我正在使用libjingle_peerconnection