HTML5获取摄像头视频的例子
html5新增了很多强大的API,其中可以获取设备的摄像头视频是个比较大的亮点,零度从网上找到了一些代码,进行了整合,搞出来一个html5获取摄像头的例子,大家可以参考一下。
HTML5获取摄像头视频演示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title>HTML5获取摄像头视频演示</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<!--[if IE]><script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.js"></script><![endif]-->
<style>
*{padding: 0;margin: 0;}
body{padding: 2%;}
video { border: 1px solid #ccc; display: block; margin: 0 0 20px 0; }
canvas { margin-top: 20px; border: 1px solid #ccc; display: block; }
</style>
</head>
<body>
<h1>HTML5获取摄像头视频演示</h1>
<video id="video" width="100%" height="480" autoplay></video>
<button id="snap" class="sexyButton">截屏</button>
<canvas id="canvas" width="640" height="480"></canvas>
<script>
window.addEventListener("DOMContentLoaded", function() {
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
video = document.getElementById("video"),
videoObj = { "video": true },
errBack = function(error) {
console.log("视频获取失败: ", error.code);
};
if(navigator.getUserMedia) { // Standard
navigator.getUserMedia(videoObj, function(stream) {
video.src = stream;
video.play();
}, errBack);
} else if(navigator.webkitGetUserMedia) { // WebKit-prefixed
navigator.webkitGetUserMedia(videoObj, function(stream){
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
} else if(navigator.mozGetUserMedia) { // WebKit-prefixed
navigator.mozGetUserMedia(videoObj, function(stream){
video.src = window.URL.createObjectURL(stream);
video.play();
}, errBack);
}
var clientW = document.documentElement.clientWidth*0.96;
document.getElementById("canvas").width = clientW;
document.getElementById("snap").addEventListener("click", function() {
context.drawImage(video, 0, 0, clientW, 480);
});
}, false);
</script>
</body>
</html>
主要代码如下:
window.addEventListener("DOMContentLoaded", function() {
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
video = document.getElementById("video"),
videoObj = { "video": true },
errBack = function(error) {
console.log("视频获取失败: ", error.code);
};
if(navigator.getUserMedia) { // Standard
navigator.getUserMedia(videoObj, function(stream) {
video.src = stream;
video.play();
}, errBack);
} else if(navigator.webkitGetUserMedia) { // WebKit-prefixed
navigator.webkitGetUserMedia(videoObj, function(stream){
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
} else if(navigator.mozGetUserMedia) { // moz-prefixed
navigator.mozGetUserMedia(videoObj, function(stream){
video.src = window.URL.createObjectURL(stream);
video.play();
}, errBack);
}
}, false);