var CameraInit=(function(window,document,undefined){functionMyCamera(videoDom,canvasDom) {this.mediaOpts ={

audio:false,

video:true,

video: { facingMode:"environment"} //或者 "user"

//video: { width: 1280, height: 720 }

//video: { facingMode: { exact: "environment" } }// 或者 "user"

}this.video=videoDom;this.canvas1=canvasDom;this.context1 = this.canvas1.getContext('2d');this.mediaStreamTrack = null;this.checkEnvironment();

}

MyCamera.prototype={

checkEnvironment:function() {

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) {var getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia ||navigator.msGetUserMedia;if (!getUserMedia) {return Promise.reject(new Error('getUserMedia is not implemented in this browser'));

}return new Promise(function(resolve, reject) {

getUserMedia.call(navigator, constraints, resolve, reject);

});

}

}

},//回调

successFunc: function(stream) {this.mediaStreamTrack =stream;this.video = document.querySelector('video');if ("srcObject" in this.video) {this.video.srcObject =stream

}else{this.video.src = window.URL && window.URL.createObjectURL(stream) ||stream

}this.video.play();

},

errorFunc:function(err) {

alert(err.name);

},//正式启动摄像头

openMedia: function(){

navigator.mediaDevices.getUserMedia(this.mediaOpts).then(this.successFunc.bind(this)).catch(this.errorFunc);

},//关闭摄像头

closeMedia: function(){var that=this;

that.mediaStreamTrack.getVideoTracks().forEach(function(track) {

track.stop();

that.context1.clearRect(0, 0,that.context1.width, that.context1.height);//清除画布

});

},//截取视频并转为图片

drawMediaAndToImg: function(){this.canvas1.setAttribute("width", this.video.videoWidth);this.canvas1.setAttribute("height", this.video.videoHeight);this.context1.drawImage(this.video, 0, 0, this.video.videoWidth, this.video.videoHeight);//显示在canvas中

var image = newImage();

image.src= this.canvas1.toDataURL('image/png')var imageWarp = document.getElementById("imageWarp");if(imageWarp.hasChildNodes()) {

document.getElementById("imageWarp").replaceChild(image, imageWarp.firstChild);

}else{

document.getElementById("imageWarp").appendChild(image);

}

},

};returnMyCamera;

})(window,document)

java 利用网页显示摄像头_web网页调用摄像头拍照相关推荐

  1. java 下拉多级联动 头像裁剪 调用摄像头 SpringMVC mybatis SSM

    获取[下载地址]   QQ 313596790 三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速 ...

  2. 由“从按下回车到网页显示”粗谈网页优化

    图为百度console.log中的信息. 注 水平有限.望批评指正. 前言 从開始做uikoo9.com開始,一直想怎怎么优化,版本号也一直在迭代. 如今最终有点雏形.近期開始思考怎么能让一个网页最快 ...

  3. chrome摄像头java_Chrome 谷歌浏览器调用摄像头并拍照上传 java示例

    html页面: html5调用摄像头实现拍照 拍照 var video=document.getElementById("video"); var context=canvas.g ...

  4. python调用摄像头人脸识别代码_利用face_recognition,dlib与OpenCV调用摄像头进行人脸识别...

    用已经搭建好 face_recognition,dlib 环境来进行人脸识别 未搭建好环境请参考: 使用opencv 调用摄像头 import face_recognition import cv2 ...

  5. 服务器项目前端调用摄像头失败,浏览器调用摄像头失败:NotSupportedError Only secure origins are allowed...

    通过浏览器调用摄像头失败:NotSupportedError Only secure origins are allowed 错误报告 NotSupportedError Only secure or ...

  6. android调用相册和摄像头,Android8.3调用摄像头和相册

    我们平时在使用QQ或微信的时候经常要和别人分享图片,这些图片可以是用手机摄像头拍的,也可以是从相册中选取的.类似这样的功能实在是太常见了,几乎在每个应用程序中都会有,那么本节我们就学习一下调用摄像头和 ...

  7. 在Jetson Nano上挂载摄像头并用OpenCV调用摄像头(较详细)

    --前言 我的摄像头为乐视的USB口摄像头,板子为Jetson Nano 4GB的板子 将摄像头接在Jetson Nano板子上,开机板子. 由于我之前已经实现Jetson Nano的内网穿透,故此处 ...

  8. 【双目相机】python使用双目摄像头录像、调用摄像头、调用视频

    1.调用摄像头 #读取摄像头 import cv2 cap=cv2.VideoCapture(0) #cap=cv2.VideoCapture('output.avi') if not cap.isO ...

  9. html调用摄像头直播,html5调用摄像头功能的实现代码

    前言 前些天,线上笔试的时候,发现需要浏览器同意开启摄像头,感觉像是 js 调用的,由于当时笔试,也就没想到这么多问题.今天闲来无事,看了下自己的 todo,发现有这个调用摄像头的todo,才想到

  10. android摄像头代码,android: 调用摄像头拍照(示例代码)

    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, CROP_PHOTO); //启动 ...

最新文章

  1. 阿里云有史以来最大的一次优惠,爆款限时抢,至少省10000+
  2. linux socket通信tcp,基于TCP协议的socket通信
  3. 你的vs.net 2005过期了吗?
  4. 高速串行自同步方式介绍及原理
  5. 数据结构_队列_mindmap
  6. 如何使 React 中的 useEffect、useLayoutEffect 只调用一次
  7. string与StringBuilder之性能比较
  8. 百度EasyDL-表格数据预测试用示例
  9. apache配置mpm_worker
  10. 士兵杀敌 三 --- O( 1 ) 的时间复杂度 .
  11. 数据库系统概论知识点
  12. 如何登录新浪微博html5,新浪微博怎么用登录名登录
  13. advanced部署vsto到wps-兼容office和wps
  14. 软著申请详细图文步骤(附模板)
  15. 动态RAM与静态RAM
  16. 武汉大学计算机系就业方向如何,武汉大学有什么王牌专业?它们的就业在哪些方向?...
  17. 【FPGA】四、按键消抖
  18. C++判断一个大于2的整数是否是素数
  19. 成为网络工程师后具体的工作内容的问题
  20. python界面小游戏贪吃蛇_用Python实现童年小游戏贪吃蛇

热门文章

  1. 【JDK8新特性】之Lambda表达式
  2. Linux文件系统类型
  3. C# SQLite 数据库基本操作
  4. 技术总监/技术leader职责与工作记录第一天
  5. 黑客在开源网站植入秘密后门、恶意软件通过非常规IP逃避检测|1月25日全球网络安全热点
  6. PTA 520钻石争霸赛题解
  7. 手机QQ 聊天数据库查看
  8. 使用golang发送电子邮件
  9. 物联网标准和协议概述(postscapes)
  10. GNSS-导航卫星受力分析