H5呼叫本地攝像頭拍攝照片
阿新 • • 發佈:2019-01-24
前言
最近專案中需要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裡面 完成拍攝效果。