当前位置:首页 > H5 > 正文内容

js调用摄像头拍照,js调用摄像头在线拍照,js调用电脑摄像头拍照

高老师8年前 (2018-01-07)H54493
<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8">
		<title>录制</title>
		<script src="js/jquery.min.js"></script>
	</head>

	<body>
		<video src="" id="video"></video>

		<button id="rec">开始录制</button>

		<button id="camera">拍照</button>
		<!--canvs绘制-->
		<canvas width="640" height="480" id="outrec"></canvas>
		<!--base64绘制-->
		<img id="imgvideo" width="640" height="480" src="" />

		<script type="text/javascript">
			var video = document.getElementById("video"); //视频dom元素

			//001.开启摄像头
			$('#rec').click(function() {
				//视频获取
				var Devicestate = navigator.mediaDevices.getUserMedia({
					audio: true,
					video: true
				})

				Devicestate.then(function(mediaStream) {

					video.src = window.URL.createObjectURL(mediaStream);
					console.log(mediaStream)
					video.onloadedmetadata = function(e) {
						video.play();
					};

				});

				//用户拒绝使用,或者没有摄像头
				Devicestate.catch(function(err) {
					console.log(err.name);
				});

			});

			//002.点击拍照按钮
			$('#camera').click(function() {
				//视频转换到canvs
				var outrec = document.getElementById("outrec");
				var outreccon = outrec.getContext("2d");
				outreccon.drawImage(video, 0, 0, 640, 480);

				var img = outrec.toDataURL("image/jpeg", 0.5)

				$('#imgvideo').attr('src', img);

			});
		</script>
	</body>

</html>

需要注意参考w3c查看兼容性,另外谷歌浏览器只允许https网页调用

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/264.html

分享给朋友:

“js调用摄像头拍照,js调用摄像头在线拍照,js调用电脑摄像头拍照” 的相关文章

javascript停止定时器,	js删除定时器

javascript停止定时器, js删除定时器

    window.setInterval(method,time)方法本身会返回一个资源句柄,使用clearInterval(Intervalid)方法即可清除定时器<script> var num=0; //每隔1秒再控制台输...

Javascript事件冒泡和捕捉的阻止

Javascript事件冒泡和捕捉的阻止

<!DOCTYPE html> <html> <head> <title>捕捉和冒泡</title> <meta charset="utf-8"> </head> <bo...

使用js让手机震动,js实现手机震动

使用js让手机震动,js实现手机震动

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head>  ...

setTimeout在循环执行顺序的思考

setTimeout在循环执行顺序的思考

朋友面试时候遇到的问题,我天真的认为会输出0,1,2,但是实际一直只输出2,2,2。通过了解才执行Js自身是单线程的环境,for循环本身是同步代码,setTimeout是异步代码。单线程的语言不能同时做2件事情,必须做出选择。于是Js引擎决定了当我执行完成同步的代码,再去执行异步的代码。当执行异步的...

部分未定义字符集,将增加页面渲染次数,速度减慢

部分未定义字符集,将增加页面渲染次数,速度减慢

百度统计“网站速度测试”中提示的。需要在html的head中添加如下代码:<meta http-equiv="content-type" content="text/html; charset=UTF-8" /&g...

flex布局,flex布局实例,flex布局教程

flex布局,flex布局实例,flex布局教程

学习flex布局前请一定按照阮一峰老师的教程手工敲一遍,100%理解,光看是一知半解。【一】.基础知识flex布局,只要把元素设置为display:flex,此元素即可称为flex容器,元素的所有子元素都自动成为容器的成员,简称flex-itemflex容器本身有两根轴,水平的主轴,垂直的交叉轴。因...