网络是我们生活中不可或缺的一部分,也是我们彼此沟通的方式。因此,当我们达到进化顶峰,在为用户和 Web 开发人员提供更好、更开放的、改变游戏规则的体验方面取得长足进步时,我们会感到非常兴奋!我们相信 WebRTC 就是其中一步。
什么是 WebRTC?
WebRTC 中的 RTC 代表实时通信,它直接在网络上提供,无需任何插件或第三方软件。其理念是在网页浏览器中以最强大的方式共享和流式传输视频、音频和数据,提供媒体丰富的交换。
来自 Mozilla、Google、Opera 等公司的代表一直在研究 WebRTC 超过一年,它正在成为 W3C 建议。
WebRTC 的三个基石是
- MediaStream
- 通过 getUserMedia API,授予 Web 应用/网站访问您计算机上的摄像头和麦克风的权限。
- DataChannel
- 点对点通信数据。
- PeerConnection API
- 启用两个 Web 浏览器之间用于音频和视频的直接点对点连接。
代码简洁性
如果您查看我们使用 WebAPI 的工作,您会看到许多简单直观的 API 的示例。我们认为 WebRTC 对所有 Web 开发人员都易于使用非常重要,而不仅仅是那些“火箭科学家”(当然,成为火箭科学家也没什么错——只是不是每个人都是。:-))
为了实现这一点,Web 浏览器会处理 Web 开发人员的实时媒体和网络,因此开发人员可以专注于编写将实时通信作为其中一项功能的应用。我们认为网络本身在某种程度上已成为如此多开发人员的极其流行的工具,因为它使创建精彩的事物与世界分享变得容易。
我们相信 WebRTC 将因同样的原因而获得成功。
例如——您可能已经在其他地方看到过——将计算机的网络摄像头直接流式传输到网页中非常简单(当然,需要用户授予访问权限)。
/*
NOTE: This is meant to show a simplified version,
without prefixes and such that are currently used
for experimental implementations
*/
// Get a reference to an existing video element, set to autoplay
var liveVideo = document.querySelector("#live-video");
/* Request access to the webcam
Note: in current implementations, this has to
be prefixed, and Google Chrome needs a Blob URL
for the MediaStream
*/
navigator.getUserMedia(
{video: true},
function (stream) {
liveVideo.src = stream;
},
function (error) {
console.log("An error occurred: " + error);
}
);
如果您现在想深入了解代码和 API,那么 无需插件的实时通信 是一个不错的阅读材料。
即将登陆您附近的网页浏览器!
需要注意的是,WebRTC 已经计划了很长时间,我们现在终于达到了一步,即 Firefox、Google Chrome 和 Opera 等尖端的 Web 浏览器实现了对 WebRTC 的支持,并将其引入网络。对于 Firefox,我们的计划是在明年 1 月初的 Firefox 18 中提供完整的 WebRTC 支持。
敬请期待,我们会随时向您通报进展情况!
关于 Robert Nyman [荣誉编辑]
Mozilla Hacks 的技术布道师和编辑。发表关于 HTML5、JavaScript 和开放 Web 的演讲和博客。Robert 是 HTML5 和开放 Web 的坚定支持者,自 1999 年以来一直在从事 Web 前端开发工作——在瑞典和纽约市。他还会定期在 http://robertnyman.com 发布博客,并且喜欢旅行和结识新朋友。
25 条评论