<!DOCTYPE html> <html> <head> <title>PeerConnection Demo 1</title> <!-- Load the polyfill to switch-hit between Chrome and Firefox --> <script src="../../base/adapter.js"></script> <script src="../js/videopipe.js"></script> <style> video { border:5px solid black; width:480px; height:360px; } button { font: 18px sans-serif; padding: 8px; } textarea { font-family: monospace; margin: 2px; width:480px; height:640px; } </style> </head> <body> <video id="vid1" autoplay></video> <video id="vid2" autoplay></video> <br> <button id="btn1" onclick="start()">Start</button> <button id="btn2" onclick="call()">Call</button> <button id="btn3" onclick="addrelay()">Insert relay</button> <button id="btn4" onclick="hangup()">Hang Up</button> <br> <xtextarea id="ta1"></textarea> <script> btn1.disabled = false; btn2.disabled = true; btn3.disabled = true; btn4.disabled = true; var pipes = new Array(); var localstream; var remotestream; function gotStream(stream){ trace("Received local stream"); attachMediaStream(vid1, stream); localstream = stream; btn2.disabled = false; } function gotRemoteStream(stream){ remotestream = stream; attachMediaStream(vid2, stream); trace("Received remote stream"); trace(pipes.length + ' elements in chain'); ta1.textContent = pipes.length + ' elements in chain'; btn3.disabled = false; } function start() { trace("Requesting local stream"); btn1.disabled = true; getUserMedia({audio:false, video:true}, gotStream, function() { alert('getUserMedia failed'); }); } function call() { btn2.disabled = true; btn3.disabled = false; btn4.disabled = false; trace("Starting call"); pipes.push(new VideoPipe(localstream, gotRemoteStream)); } function addrelay() { pipes.push(new VideoPipe(remotestream, gotRemoteStream)); btn3.disabled = true; } function hangup() { trace("Ending call"); while (pipes.length > 0) { var pipe = pipes.pop() pipe.close(); } btn3.disabled = true; btn4.disabled = true; btn2.disabled = false; } </script> </body> </html>