Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    rtc-everywherepublic

    rtc-everywhere NPM version Downloads Build Status

    What is this?

    Sick of the incompatible mess of vendor prefixes, adapters, plugins, extensions, and native modules? rtc-everywhere gives you spec-compliant WebRTC in as many environments as possible, all with the same simple code.

    Supported Environments

    💻 Desktop

    • Chrome
    • Firefox
    • MS Edge [Partial]
      • No data channels
    • Safari 7+
      • Requires Temasys Plugin
    • Internet Explorer 9+ [In Progress]
      • Requires Temasys Plugin

    📱 Mobile

    • Android 5+
    • Cordova iOS
      • Requires cordova-iosrtc
    • Cordova Android
      • Requires cordova-crosswalk
    • react-native iOS/Android [In Progress]
      • Requires react-native-webrtc

    Other

    • Node.js 0.10+ (via wrtc) [In Progress]

    Getting Started

    npm install rtc-everywhere --save
    var rtc = require('rtc-everywhere')();
     
    // Available: 
    // rtc.RTCPeerConnection 
    // rtc.RTCIceCandidate 
    // rtc.RTCSessionDescription 
    // rtc.getUserMedia 
    // rtc.attachStream(stream, videoElement) 

    🔮 Want a more detailed example that uses these functions? Check out the loopback stream example!

    API

    RTCPeerConnection

    Exactly the same as the specification. See the Specification Documentation!

    RTCIceCandidate

    Exactly the same as the specification. See the Specification Documentation!

    RTCSessionDescription

    Exactly the same as the specification. See the Specification Documentation!

    getUserMedia(constraints, cb)

    Similar to the specification, but slightly adjusted to have an easier API.

    Modifications
    • constraints is optional (makes things easier)

      • Defaults to {video: true, audio: true}
    • cb is a node-style error first callback

    // these are the same thing 
    rtc.getUserMedia(function(err, stream){});
    rtc.getUserMedia({video: true, audio: true}, function(err, stream){});

    attachStream(stream, element)

    • Attaches a stream to a given video element
    • Returns the element the video was attached to
    • In IE and Safari, the video element will be replaced by an object element
      • Elements will not be replaced or modified unless they exist on the DOM
      • Regardless of replacement, the new object element will be returned

    Related Libraries

    install

    npm i rtc-everywhere

    Downloadslast 7 days

    0

    version

    0.0.5

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar
    • avatar