<!DOCTYPE html> <html> <head><title>getUserMedia sanity test</title></head> <body> <video id="localVideo" width="1280" height="720" autoplay muted></video> <script> var testStatus = 'running'; function getStatus() { return testStatus; } function runTest() { var test = new SanityTest(); test.start(); } function SanityTest() { this.localVideo = document.getElementById("localVideo"); } SanityTest.prototype = { start: function() { this.localVideo.addEventListener('play', this.onVideoPlaying.bind(this), false); navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia; navigator.getUserMedia({audio: true, video: true}, this.gotLocalStream.bind(this), this.gotUserMediaError.bind(this)); }, gotLocalStream: function(stream) { console.log('Attaching video stream to video tag, waiting for onplay()'); this.localVideo.src = window.URL.createObjectURL(stream); }, gotUserMediaError: function(error) { console.error('navigator.getUserMedia error: ', error); testStatus = 'navigator.getUserMedia error: ' + error.toString(); }, onVideoPlaying: function() { testStatus = 'ok-video-playing'; } } window.onload = runTest; window.onerror = function (message, filename, lineno, colno, error) { console.log("Something went wrong, here is the stack trace --> %s", error.stack); testStatus = 'exception-in-test-page: ' + error.stack }; </script> </body> </html>