1 <!DOCTYPE html> 2 <html> 3 <head><title>getUserMedia sanity test</title></head> 4 <body> 5 <video id="localVideo" width="1280" height="720" autoplay muted></video> 6 <script> 7 8 var testStatus = 'running'; 9 10 function getStatus() { 11 return testStatus; 12 } 13 14 function runTest() { 15 var test = new SanityTest(); 16 test.start(); 17 } 18 19 function SanityTest() { 20 this.localVideo = document.getElementById("localVideo"); 21 } 22 23 SanityTest.prototype = { 24 start: function() { 25 this.localVideo.addEventListener('play', 26 this.onVideoPlaying.bind(this), false); 27 navigator.getUserMedia = navigator.getUserMedia || 28 navigator.webkitGetUserMedia || navigator.mozGetUserMedia; 29 navigator.getUserMedia({audio: true, video: true}, 30 this.gotLocalStream.bind(this), 31 this.gotUserMediaError.bind(this)); 32 }, 33 34 gotLocalStream: function(stream) { 35 console.log('Attaching video stream to video tag, waiting for onplay()'); 36 this.localVideo.src = window.URL.createObjectURL(stream); 37 }, 38 39 gotUserMediaError: function(error) { 40 console.error('navigator.getUserMedia error: ', error); 41 testStatus = 'navigator.getUserMedia error: ' + error.toString(); 42 }, 43 44 onVideoPlaying: function() { 45 testStatus = 'ok-video-playing'; 46 } 47 } 48 49 window.onload = runTest; 50 window.onerror = function (message, filename, lineno, colno, error) { 51 console.log("Something went wrong, here is the stack trace --> %s", 52 error.stack); 53 testStatus = 'exception-in-test-page: ' + error.stack 54 }; 55 </script> 56 </body> 57 </html> 58