应用程序缓存appcache 和 WebRTC摄像头
2017-06-13 本文已影响29人
李霖弢
appcache
- swapcache() 用于解决更新/刷新后依然无反应的兼容性问题
调用摄像头
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>获取摄像头和声音</title>
</head>
<body>
<h1>捕获摄像头</h1>
<hr>
<button id="btn">开启摄像头</button>
<br>
<video id="webcam"></video>
<button id='picture' style="display:none">PICTURE</button>
<canvas id="canvas" width="640" height="480" style="display:none"></canvas>
<script>
navigator.getUserMedia || (navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia);
//判断 是否支持 getUserMeida
if (!navigator.getUserMedia) {
}
//获取button
var btn = document.getElementById('btn');
//绑定事件
btn.onclick = startWebcam;
//开启 启动 摄像头
function startWebcam(){
navigator.getUserMedia({
video:true,
audio:true,
}, onSuccess, onError)
//调用成功后的回调 函数
function onSuccess(stream){
//展示摄像头图像
var video = document.getElementById('webcam');
if (window.URL) {
video.src = window.URL.createObjectURL(stream);
} else {
video.src = stream;
}
video.play();
//创建一个拍照按钮
picture.style.display = "block";
}
//未成功调用后的回调函数
function onError(error){
console.log(error);
}
}
//绑定拍照事件
picture.onclick = function(){
canvas.style.display = "block";
var cxt = canvas.getContext('2d');
cxt.drawImage(document.getElementById('webcam'), 0, 0, 640, 480);
}
</script>
</body>
</html>