js实现web调用摄像头 js截取视频画面
本文实例为大家分享了JS实现截取视频画面的具体代码,供大家参考,具体内容如下
Html
打开 关闭 截取
Javascript
varvideo=document.querySelector('video'); vartext=document.getElementById('text'); varcanvas1=document.getElementById('qr-canvas'); varcontext1=canvas1.getContext('2d'); varmediaStreamTrack; //一堆兼容代码 window.URL=(window.URL||window.webkitURL||window.mozURL||window.msURL); if(navigator.mediaDevices===undefined){ navigator.mediaDevices={}; } if(navigator.mediaDevices.getUserMedia===undefined){ navigator.mediaDevices.getUserMedia=function(constraints){ vargetUserMedia=navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia; if(!getUserMedia){ returnPromise.reject(newError('getUserMediaisnotimplementedinthisbrowser')); } returnnewPromise(function(resolve,reject){ getUserMedia.call(navigator,constraints,resolve,reject); }); } } //摄像头调用配置 varmediaOpts={ audio:false, video:true, video:{facingMode:"environment"}//或者"user" //video:{width:1280,height:720} //video:{facingMode:{exact:"environment"}}//或者"user" } //回调 functionsuccessFunc(stream){ mediaStreamTrack=stream; video=document.querySelector('video'); if("srcObject"invideo){ video.srcObject=stream }else{ video.src=window.URL&&window.URL.createObjectURL(stream)||stream } video.play(); } functionerrorFunc(err){ alert(err.name); } //正式启动摄像头 functionopenMedia(){ navigator.mediaDevices.getUserMedia(mediaOpts).then(successFunc).catch(errorFunc); } //关闭摄像头 functioncloseMedia(){ mediaStreamTrack.getVideoTracks().forEach(function(track){ track.stop(); context1.clearRect(0,0,context1.width,context1.height);//清除画布 }); } //截取视频 functiondrawMedia(){ canvas1.setAttribute("width",video.videoWidth); canvas1.setAttribute("height",video.videoHeight); context1.drawImage(video,0,0,video.videoWidth,video.videoHeight); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。