WebRTC

2016-10-15

陈文

博看文思(广州)


     WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。

     WebRTC(Web Real-Time Communication)项目的最终目的主要是让Web开发者能够基于浏览器(Chrome\FireFox...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号处理过程,只需编写简单的Javascript程序即可实现,W3C等组织正在制定Javascript 标准API,目前是WebRTC 1.0版本,Draft状态;另外WebRTC还希望能够建立一个多互联网浏览器间健壮的实时通信的平台,形成开发者与浏览器厂商良好的生态环境。同时,Google也希望和致力于让WebRTC的技术成为HTML5标准之一,可见Google布局之深远。
WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。


浏览器支持情况

  • 桌上PC端
    • Google Chrome 23
    • Mozilla Firefox 22
    • Opera 18
  • Android端
    • Google Chrome 28(从版本29开始默认开启)
    • Mozilla Firefox 24[10]
    • Opera Mobile 12
  • Google Chrome OS
  • Firefox OS
  • iOS
  • Blackberry 10 内置浏览器

开发环境搭建

  1. 访问Node.js网站,在操作系统中安装Node.js
  2. 打开终端或命令行界面并输入npm install -g node-static(你很可能需要管理员权限)

开始第一个项目

  1. 在你想要的地方创建一个文件夹,作为你的工程目录
  2. 在文件夹下创建一个 server.js 文件,代码如下:
     var static = require('node-static');
     var http = require('http');
     var file = new(static.Server)();
     var app = http.createServer(function (req, res) {
          file.serve(req, res);
     }).listen(8080);
     
  3. 在文件夹下创建一个 index.html 文件,js代码如下:

        function hasUserMedia() {
           return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
         }
     if (hasUserMedia()) {
       navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;   
       navigator.getUserMedia({
         video: true,
         audio: true
       }, function (stream) {
         var video = document.querySelector('video');
         video.src = window.URL.createObjectURL(stream);
       }, function (err) {
           console.log(err);
       });
     } else {
       alert("抱歉,你的浏览器不支持 getUserMedia.");
     }
    
     
  4. 打开终端或命令行界面, cd + 您创建的文件夹路径

  5. 继续输入 node server.js
  6. 出现错误之后,输入 npm install node-static
  7. 在浏览器输入 localhost:8080

项目地址


项目地址