<input type=”button” title=” 开启摄像头 ” value=” 开启摄像头 ” onclick=”getMedia()” />
<video id="video" width="500px" height="500px" autoplay="autoplay"></video>
<canvas id="canvas" width="500px" height="500px"></canvas>
<button id="snap" onclick="takePhoto()"> 拍照 </button>
function getMedia() {
let constraints = {video: {width: 500, height: 500},
audio: true
};
// 获得 video 摄像头区域
let video = document.getElementById("video");
// 这里介绍新的方法,返回一个 Promise 对象
// 这个 Promise 对象返回成功后的回调函数带一个 MediaStream 对象作为其参数
// then() 是 Promise 对象里的方法
// then() 方法是异步执行,当 then() 前的方法执行完后再执行 then() 内部的程序
// 避免数据没有获取到
let promise = navigator.mediaDevices.getUserMedia(constraints);
promise.then(function (MediaStream) {
video.srcObject = MediaStream;
video.play();});
}
function takePhoto() {
// 获得 Canvas 对象
let video = document.getElementById("video");
let canvas = document.getElementById("canvas");
let ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, 500, 500);
}
来源:CSDN
原文:https://blog.csdn.net/lishund…