代码拉取完成,页面将自动刷新
同步操作将从 sohucw/tool-box 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<!DOCTYPE html>
<html>
<head>
<title>navigator.getUserMedia</title>
<style>
video.local { transform: rotateY(180deg); }
</style>
</head>
<body>
<video autoplay playsinline id="player"></video>
<button id="close">关闭摄像头</button>
<button id="snapshot">截图图片</button>
<canvas width="600px" height="400px" id="picture"></canvas>
<script>
let videoPlay = document.getElementById('player');
//获取button 和canvas
let snapshot = document.getElementById('snapshot');
let close = document.getElementById('close');
let picture = document.getElementById('picture');
let mediaStreamTrack;
//音视频数据
function gotMediaStream(stream) {
mediaStreamTrack = typeof stream.stop === 'function' ? stream : stream.getTracks()[1];
videoPlay.srcObject = stream; //将获取到的流赋给video标签
}
function handleError(err) {
console.log(err.name + " : " + err.message);
}
if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {
console.log("你的浏览器不支持getUserMedia");
} else {
var constraints = {
video: true,
audio: false
}
navigator.mediaDevices.getUserMedia(constraints)
.then(gotMediaStream)
.catch(handleError);
}
// 截取图像
snapshot.addEventListener('click', function() {
//将videoplay当作源使用drawImage截取一帧数据就实现拍照功能。
picture.getContext('2d').drawImage(videoPlay, 0, 0);
}, false);
// 关闭摄像头
close.addEventListener('click', function() {
mediaStreamTrack && mediaStreamTrack.stop();
}, false);
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。