Home | History | Annotate | Download | only in video_ChromeRTCHWEncodeUsed
      1 <!DOCTYPE html>
      2 <html>
      3 <head><title>Loopback test</title></head>
      4 <body>
      5   <video id="remoteVideo" autoplay muted></video>
      6 <script>
      7 var localStream, localPeerConnection, remotePeerConnection;
      8 var remoteVideo = document.getElementById("remoteVideo");
      9 
     10 function start() {
     11   navigator.getUserMedia = navigator.getUserMedia ||
     12     navigator.webkitGetUserMedia;
     13   navigator.getUserMedia(
     14     {
     15       audio:false,
     16       video:{
     17         "mandatory": {
     18           "minWidth": "1280",
     19           "minHeight": "720",
     20         }
     21       }
     22     },
     23     gotLocalStream,
     24     gotError);
     25 }
     26 
     27 function gotLocalStream(stream) {
     28   localStream = stream;
     29   var servers = null;
     30 
     31   localPeerConnection = new webkitRTCPeerConnection(servers);
     32   localPeerConnection.onicecandidate = gotLocalIceCandidate;
     33 
     34   remotePeerConnection = new webkitRTCPeerConnection(servers);
     35   remotePeerConnection.onicecandidate = gotRemoteIceCandidate;
     36   remotePeerConnection.onaddstream = gotRemoteStream;
     37 
     38   localPeerConnection.addStream(localStream);
     39   localPeerConnection.createOffer(gotLocalDescription);
     40 }
     41 
     42 function gotError(error) {
     43   console.log("navigator.getUserMedia error: ", error);
     44 }
     45 
     46 function gotRemoteStream(event) {
     47   remoteVideo.src = URL.createObjectURL(event.stream);
     48 }
     49 
     50 function gotLocalDescription(description) {
     51   localPeerConnection.setLocalDescription(description);
     52   remotePeerConnection.setRemoteDescription(description);
     53   remotePeerConnection.createAnswer(gotRemoteDescription);
     54 }
     55 
     56 function gotRemoteDescription(description) {
     57   remotePeerConnection.setLocalDescription(description);
     58   localPeerConnection.setRemoteDescription(description);
     59 }
     60 
     61 function gotLocalIceCandidate(event) {
     62   if (event.candidate)
     63     remotePeerConnection.addIceCandidate(new RTCIceCandidate(event.candidate));
     64 }
     65 
     66 function gotRemoteIceCandidate(event) {
     67   if (event.candidate)
     68     localPeerConnection.addIceCandidate(new RTCIceCandidate(event.candidate));
     69 }
     70 
     71 window.onload=start;
     72 </script>
     73 </body>
     74 </html>
     75