0.0.5 • Published 10 years ago
rtc-everywhere v0.0.5
rtc-everywhere

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
:computer: Desktop
- Chrome
- Firefox
- MS Edge Partial
- No data channels
- Safari 7+
- Requires Temasys Plugin
- Internet Explorer 9+ In Progress
- Requires Temasys Plugin
:iphone: 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 --savevar rtc = require('rtc-everywhere')();
// Available:
// rtc.RTCPeerConnection
// rtc.RTCIceCandidate
// rtc.RTCSessionDescription
// rtc.getUserMedia
// rtc.attachStream(stream, videoElement):crystal_ball: 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
constraintsis optional (makes things easier)- Defaults to
{video: true, audio: true}
- Defaults to
cbis 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
objectelement- Elements will not be replaced or modified unless they exist on the DOM
- Regardless of replacement, the new
objectelement will be returned