1. 程式人生 > >H5呼叫本地攝像頭拍攝照片

H5呼叫本地攝像頭拍攝照片

前言

最近專案中需要H5呼叫本地攝像頭拍照的需求。

程式碼

<canvas id="canvasCemara" width="500" height="500"></canvas>
<video autoplay="" id="video2" style="width:500px;height:500px;"></video>
<button id="btn">拍攝</button>

html 部分就這些 一個canvas 一個 video  一個button 
video  展示攝像頭捕獲的視訊
canvas 負責展示拍攝的照片

var video = document.getElementById('video2');
var constraints = {audio: false, video: true};
 function successCallback(stream) {
     video.srcObject = stream;
     video.play();
 }
 function errorCallback(error) {
     console.log("navigator.getUserMedia error: ", error);
     $(".CameraTips").show();
 }

 navigator.mediaDevices.getUserMedia(constraints)
     .then(successCallback)
     .catch(errorCallback);

document.getElementById("btn").addEventListener("click", function () {
    var video = document.getElementById('video2');
    canvas = document.getElementById('canvasCemara');
    ctx = canvas.getContext('2d');
    var _w = 624, _h = 468;
    if (video.videoWidth > 0) _h = video.videoHeight / (video.videoWidth / _w);
    canvas.setAttribute('width', _w);
    canvas.setAttribute('height', _h);
    ctx.fillRect(0, 0, _w, _h);
    ctx.drawImage(video, 0, 0, _w, _h);
});

按下btn 將視訊中的內容畫在canvas裡面 完成拍攝效果。