-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathindex.js
49 lines (40 loc) · 1.13 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var rtc = require('../../')();
var Peer = require('simple-peer');
var crel = require('crel');
if (rtc.platform === 'unsupported') {
console.error('Platform not supported!');
}
rtc.getUserMedia(function(err, stream){
if (err) return console.error(err);
createLoopback(stream);
});
function createLoopback(stream){
var initiator = new Peer({
initiator: true,
stream: stream,
wrtc: rtc
});
var receiver = new Peer({
stream: stream,
wrtc: rtc
});
initiator.on('error', console.error.bind(console));
receiver.on('error', console.error.bind(console));
initiator.on('signal', receiver.signal.bind(receiver));
receiver.on('signal', initiator.signal.bind(initiator));
initiator.once('stream', function(stream){
console.debug('Stream relayed receiver -> initiator');
crel(document.body, makeVideo(stream));
});
receiver.once('stream', function(stream){
console.debug('Stream relayed initiator -> receiver');
crel(document.body, makeVideo(stream));
});
}
function makeVideo(stream) {
var el = crel('video', {
muted: true,
autoplay: true
});
return rtc.attachStream(stream, el);
}