diff --git a/public/main.js b/public/main.js index d77b9c2..0b162e0 100644 --- a/public/main.js +++ b/public/main.js @@ -3,6 +3,7 @@ let messagesEl = document.querySelector('.messages'); let peerIdEl = document.querySelector('#connect-to-peer'); +let videoEl = document.querySelector('.remote-video'); let logMessage = (message) => { let newMessage = document.createElement('div'); @@ -10,6 +11,11 @@ let logMessage = (message) => { messagesEl.appendChild(newMessage); }; +let renderVideo = (stream) => { + videoEl.srcObject = stream; + videoEl.onloadedmetadata = (e) => videoEl.play(); +}; + let peer = new Peer({ host: '/', path: '/peerjs/myapp' @@ -29,6 +35,14 @@ peer.on('connection', (conn) => { conn.send('hello!'); }); }); +peer.on('call', (call) => { + navigator.mediaDevices.getUserMedia({video: true, audio: true}, (stream) => { + call.answer(stream); // Answer the call with an A/V stream. + call.on('stream', renderVideo); + }, (err) => { + console.error('Failed to get local stream', err); + }); +}); let connectToPeer = () => { let peerId = peerIdEl.value; @@ -41,6 +55,13 @@ let connectToPeer = () => { conn.on('open', () => { conn.send('hi!'); }); + + navigator.mediaDevices.getUserMedia({video: true, audio: true}, (stream) => { + let call = peer.call(peerId, stream); + call.on('stream', renderVideo); + }, (err) => { + logMessage('Failed to get local stream', err); + }); }; window.connectToPeer = connectToPeer; \ No newline at end of file diff --git a/views/index.html b/views/index.html index 04729a8..a952efd 100644 --- a/views/index.html +++ b/views/index.html @@ -21,7 +21,7 @@ - +