getUserMedia Example
by dirkk0
HTML
<article>
<video id="video" width="320" height="200" autoplay></video>
<section>
<button id="btnStart">Start video</button>
<button id="btnStop">Stop video</button>
<button id="btnPhoto">Take a photo</button>
</section>
<canvas id="canvas" width="320" height="240"></canvas>
</article>
CSS
body {
font-family:"Verdana";
font-size: 9pt;
}
header {
padding: 15px;
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.4);
background-color: rgb(27, 161, 226);
color: #fff;
}
header h1 {
font-size: 14pt;
}
article {
width: 80%;
margin: auto;
margin-top: 20px;
}
JavaScript
window.onload = function () {
//Compatibility
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
video = document.getElementById("video"),
btnStart = document.getElementById("btnStart"),
btnStop = document.getElementById("btnStop"),
btnPhoto = document.getElementById("btnPhoto"),
videoObj = {
video: true,
audio: true
};
btnStart.addEventListener("click", function () {
var localMediaStream;
if (navigator.getUserMedia) {
navigator.getUserMedia(videoObj, function (stream) {
video.src = (navigator.webkitGetUserMedia) ? window.webkitURL.createObjectURL(stream) : stream;
localMediaStream = stream;
}, function (error) {
console.error("Video capture error: ", error.code);
});
btnStop.addEventListener("click", function () {
localMediaStream.stop();
});
btnPhoto.addEventListener("click", function () {
context.drawImage(video, 0, 0, 320, 240);
});
}
});
};