宣布 WebRTC 和媒体捕获
今天,我们很高兴地宣布 WebKit 支持 WebRTC,该功能已在运行 macOS High Sierra 和 iOS 11 的 Safari 以及 Safari 技术预览版 32 上提供。在这篇文章中,我们将概述我们的实现。未来我们还将发布更多关于开发者最佳实践的帖子。
谈到 WebRTC,我们立刻想到进行视频会议通话。启动通话需要两个步骤。首先,WebKit 需要访问用户的摄像头和麦克风。HTTPS 网站为此目的在 Safari 上使用 媒体捕获和流 API。一旦用户通过提示授予权限,捕获流就会开始传输。这些流可以通过使用约束来根据网站需求进行定制。
其次,用户在检查屏幕上自己的发型是否良好后,加入对话。网站将这些捕获流发送给其他参与者。用户显然也想看到其他参与者的发型,所以这就是 WebRTC API 发挥作用的地方。WebKit 查找并创建最佳网络通道来连接这些流。
为了处理网络层,WebKit 选择了 LibWebRTC 开源框架。LibWebRTC 提供了高水平的互操作性以及丰富的流媒体功能,可实现高效的视频会议。Safari 支持 Opus 等现代音频编解码器,并利用 H.264 视频编解码器充分利用节能硬件。
目前,Safari 支持旧版 WebRTC API。Web 开发者可以通过切换 STP 实验性功能菜单项“移除旧版 WebRTC API”来检查他们的网站是否符合最新规范。旧版 WebRTC API 将在未来版本中默认禁用。需要兼容旧版 WebRTC 和媒体捕获规范实现的网站可以利用 adapter.js 等 polyfill 库。
一个好的 WebRTC 配方需要许多要素。为了确保我们拥有实现视频会议所需的一切,一些合作伙伴加入了进来,将其产品支持 Safari。感谢 TokBox 和 BlueJeans 今天发布了测试版。
下一代通信技术已经到来,我们很高兴能在 WebKit 和 Apple 平台上看到它们。我们希望听取您的反馈!提交错误报告,发送电子邮件至 web-evangelist@apple.com,或推特至 @webkit。