navigator调用摄像头pc


navigator 调取摄像头

async  异步请求方式

await   等待Promise请求完成

//开启摄像头
async function startCamera() {
let video = document.getElementById("video");
let stream = await navigator.mediaDevices.getUserMedia({
video: {
width:100,
height: 200
},
audio: false
})
video.srcObject = stream;
video.play();
}

//关闭摄像头
function closeCamera(){
let stream = document.getElementById('video').srcObject;
let tracks = stream.getTracks();
tracks.forEach(function(track) {
track.stop();
});
document.getElementById('video').srcObject = null;
}

//拍照
function takephoto(){
  let video = document.getElementById('video');//视频标签
  let canvas = document.getElementById('outputCanvas');//
  let ctx = canvas.getContext('2d');//设置格式
  ctx.drawImage(video, 0, 0,640,480);       
  let img = document.getElementById('outputCanvas').toDataURL();//图片 base64格式可直接做img
}