MDN文檔 - getUserMedia介紹
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CNzYTN0MWZ5MWO3ATO0UjNzYzX1UjNxEDM1AzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>camera</title>
</head>
<body>
<div id="contentHolder">
<video id="video" autoplay></video>
<img id="imgXX"/>
</div>
<button id="btn_snap" onclick="takePhoto()">拍照</button>
</body>
<script>
let width = height = video.width = video.height = 400;
const constraints = {
video: {
width,
height
}
}
navigator.mediaDevices.getUserMedia(constraints).then(stream => {
video.srcObject = stream;
video.onloadedmetadata = () => video.play();
})
// 拍照,這裡借助canvas把video的一幀轉換成圖檔
function takePhoto() {
let canvas = document.createElement('canvas');
canvas.width = canvas.height = 400;
const ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, width, height);
document.getElementById('imgXX').src = canvas.toDataURL('image/png');
}
</script>
</html>