如何在本机iOS应用中使用WebRTC SDK?

最近,我们分享了有关WebRTC Android SDK的帖子。 今天,我们很高兴地宣布,AntMedia WebRTC iOS SDK已为开发人员准备就绪。

与Android SDK类似,iOS SDK简化了在iOS平台上使用WebRTC的工作,并通过使用Ant Media服务器作为信令服务器在iOS设备(iPhone和iPad)与浏览器之间提供了对等WebRTC通信。 本文档首先介绍如何运行参考应用程序。 如果您只想查找SDK,请从此处查看SDK文档。

为了使用WebRTC iOS SDK,您需要WebRTC框架构建,WebRTC iOS SDK和其他一些库以及Ant Media Server Enterprise Edition。 请通过contact@antmedia.io与我们联系。 我们可以提供WebRTC iOS SDK和Enterprise Edition供尝试或个人使用。 请不要忘记提及您更喜欢在何处使用WebRTC iOS SDK:模拟器或通用iOS设备。

解压缩媒体服务器企业版,并在终端中使用start.sh命令启动服务器:

cd /路径/到/ ant-media-server
./start.sh

下载参考应用程序项目后,您可能会看到该项目有两个视图控制器要显示:WelcomeViewController来设置服务器ip,连接模式和房间名称。 VideoViewController显示本地和远程流。

从项目导航器可以看到,参考应用程序使用pod进行依赖项管理。 Starscream库用于处理iOS客户端和Ant Media Enterprise Edition之间的WebSocket连接。

从文件夹结构中可以看到,有一些与AntMediaSDK和WebRTC链接的库:AVFoundation,GLKit,CoreVideo,CoreMedia,CoreImage,CoreGraphics,AudioToolbox,VideoToolbox,libc ++,libsqlite3.0,libicucore。

因此,当我们运行参考应用程序时,WelcomeViewController将被视为初始视图控制器。 在点击连接按钮之前,应先定义服务器ID和房间名称。

如果连接正常,则参考应用程序将保存服务器ip和房间名称以用于进一步的会话。

如果连接不正常,将显示一条错误消息,作为警报。 因此,如果选中WelcomeViewController,您将看到如何处理客户端委派。

如果一切正常,将显示VideoViewController。 如果不播放模式,则意味着应用程序需要摄像机和麦克风才能进行本地流播放,并会提示许可请求。

从情节提要中可以看到,可以启用和禁用摄像头和麦克风。 您也可以从页脚视图中查看连接状态。

另一个对等方应连接到同一房间,以建立对等连接。 您可以将参考应用程序安装到任何其他iOS设备上并连接到相同的房间ID,也可以转到http:// localhost:5080 / WebRTCAppEE / peer.html,在文本框中输入相同的房间ID,然后点击“加入”网页。

看一下WelcomeViewController,以查看iOS SDK的示例用法。

模式

广播场景有3种类型,因此是操作模式。
–对等连接(两个节点相互连接,一对一连接)
–发布(一个节点发布,1-N连接)
–播放(其他节点播放发布者广播,1-N连接)

根据项目或需求,开发人员可以在其应用程序中实现一种或所有模式。

连接参数

– streamId(广播名称)
– url(服务器的WebSocket网址)
–模式(操作模式)

WebSocket服务器的URL可能会根据通信介质而变化,例如在安全环境中,URL以“ wss”而不是“ ws”开头,端口号默认更改为“ 8082”

首先,您需要导入AntMediaSDK和WebRTC以及AVFoundation,GLKit,CoreVideo,CoreMedia,CoreImage,CoreGraphics,AudioToolbox,VideoToolbox,libc ++,libsqlite3.0,libicucore。

然后在视图控制器类中,创建一个AntMediaClient实例,例如:

让客户端= AntMediaClient.init()

您可以看到WelcomeViewController如何初始化AntMediaClient:如果服务器URL,房间名称和模式都可以,则SDK将调用clientDidConnect。

然后,您应该设置本地并删除视频视图,并进行委派,您可以使用VideoViewController:

client.delegate =自我
client.setVideoViews(本地:localVideoView,远程:remoteVideoView)

这样客户端就可以连接了:

client.connect()

如果将调用clientDidConnect,则表示连接正常,并且客户端准备开始流式传输:

client.start()

最初发布于 antmedia.io