Safari上使用WebRTC指南

本文是关于在Safari中使用WebRTC的详细指南,包括Apple的实现现状、遇到的问题及解决方法。作者Chad Phillips分享了他在集成WebRTC到复杂视频会议应用过程中的经验,涵盖了一对一通话的简单集成以及更复杂场景下的挑战,如iOS特有的限制、自动播放规则、媒体设备管理等。此外,他还提到了VP8不被支持的问题以及与其它浏览器的互操作性。
摘要由CSDN通过智能技术生成

尽管Apple在2017年的WWDC上宣布加入WebRTC支持,但仍然没有看到Apple在支持WebRTC上更深入的举动,尤其是其不只支持VP8更加强了这种担忧。


文 / Chad Phillips

译 / 元宝

原文:https://webrtchacks.com/guide-to-safari-webrtc/


自Apple首次向Safari添加WebRTC支持以来,已有一年多的时间了。鉴于WebRTC的差异和局限性,如何最好地开发Safari的WebRTC应用程序仍然存在许多问题。Chad是长期开源人员,也是FreeSWITCH产品的贡献者。他自2015年以来一直参与WebRTC的开发工作。他最近推出了MoxieMeet,一个在线体验活动的视频会议平台,在那里他担任首席技术官,并为这篇文章将展示他许多见解。


640?wx_fmt=png

 

Safari和WebRTC在野外。由Flickr用户Curious Expeditions(CC BY-NC-SA 2.0)添加到Mountain Lion攻击鹿 - 动物标本的照片


在2017年6月,苹果成为最后一个发布WebRTC支持的主要供应商,为平台的互操作性铺平了(仍然坎坷的)道路。


然而,一年多以后,我对开发人员仍然缺乏可用于将WebRTC应用程序与Safari / iOS集成的指南感到惊讶。除了Webkit团队的一些帖子之外,还有一些分散的StackOverflow问题,从WebRTC的Webkit bug报告中收集到的知识,以及这些网站上得的一些帖子,我真的没有看到很多可用的支持。这篇文章试图开始纠正这一差距。


我花了很多个月的努力将WebRTC集成到Safari中,用于非常复杂的视频会议应用程序。我的大部分时间花在了iOS工作上,尽管下面的一些指针也适用于MacOS上的Safari。


这篇文章假设您在实施WebRTC方面有一定的经验——这并不是初学者的方法,而是有经验的开发人员指导他们平滑的将他们的应用程序与Safari / iOS集成的过程。在适当的情况下,我将指出Webkit bug跟踪器中提交的相关问题,以便您可以将您的声音添加到这些讨论中,以及其他一些信息丰富的帖子中。 


为了在我的应用程序中声明iOS支持,我做了大量探索,希望下面的知识将使您的旅程更加顺畅!


首先是一些好消息


第一,好消息是:


  • 苹果目前的实施相当稳固

  • 对于简单的1-1音频/视频通话,集成非常简单


让我们来看看一些需求和问题所在。


一般准则和烦恼


使用当前的WebRTC规范


 640?wx_fmt=png


如果您是从头开始构建应用程序,我建议使用当前的WebRTC API规范(它经历了几次迭代)。以下资源在这方面很棒:


  • https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API

  • https://github.com/webrtc/samples


对于那些运行具有较旧WebRTC实施的应用程序的人,我建议您尽可能升级到最新规范,因为iOS的下一个版本默认禁用旧版API。特别是,最好避免使用传统的addStream API,这使得操作流中的轨道变得更加困难。


有关此问题的更多背景信息:https://blog.mozilla.org/webrtc/the-evolution-of-webrtc/


iPhone和iPad有独特的规则 - 测试两者

 

640?wx_fmt=png


由于iPhone和iPad有不同的规则和限制,特别是在视频方面,我强烈建议您在两台设备上测试您的应用程序。从iPhone开始全面工作可能更聪明,这似乎比iPad有更多限制。


更多背景信息:https://webkit.org/blog/6784/new-video-policies-for-ios


让iOS疯狂开始吧


您可能只需要将应用程序在iOS上运行即可。如果没有,现在就出现了坏消息:iOS实现有一些相当令人抓狂的错误/限制,特别是在多方会议电话等更复杂的情况下。


iOS上的其他浏览器缺少WebRTC集成


640?wx_fmt=png


WebRTC API尚未向使用WKWebView的IOS浏览器公开。实际上,这意味着您的基于Web的WebRTC应用程序仅适用于iOS上的Safari,而不适用于用户可能安装的任何其他浏览器(例如Chrome),也不适用于Safari的“应用程序内”版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值