html5 摄像头的调用

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>摄像头调用</title>
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" charset="utf-8" />
 6     <style type="text/css">
 7     video,canvas{
 8         margin-top: 10px;
 9     }
10     </style>
11 </head>
12 <body>
13     <input type="button" title="开启摄像头" value="开启摄像头" onclick="getMedia();" />
14     <input type="button" title="关闭摄像头" value="关闭摄像头" onclick="shutdown()"><br/>
15     <video height="200px" autoplay="autoplay" poster="cover.png" ></video><hr/> //poster是video的封面图片,可以自己加一个,也可以直接去掉
16
17     <input type="button" title="拍照" value="拍照" onclick="getPhoto();"/><br/>
18     <canvas id="canvas1" height="200px" ></canvas>
19
20     <script type="text/javascript">
21         var video = document.querySelector(‘video‘);
22
23         var canvas1 = document.getElementById(‘canvas1‘);
24         var context1 = canvas1.getContext(‘2d‘);
25
26         navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
27         window.URL = window.URL || window.webkitURL || window.mozURL || window.msUR;
28
29         var exArray = []; //存储设备源ID
30         MediaStreamTrack.getSources(function (sourceInfos) {
31             for (var i = 0; i != sourceInfos.length; ++i) {
32                 var sourceInfo = sourceInfos[i];
33                 //这里会遍历audio,video,所以要加以区分
34                 if (sourceInfo.kind === ‘video‘) {
35                     exArray.push(sourceInfo.id);
36                 }
37             }
38         });
39
40         function getMedia() {
41             if (navigator.getUserMedia) {
42                 navigator.getUserMedia({
43                     ‘video‘: {
44                         ‘optional‘: [{
45                             ‘sourceId‘: exArray[1] //0为前置摄像头,1为后置
46                         }]
47                     },
48                     ‘audio‘:false                 //关闭声音
49                 }, successFunc, errorFunc);    //success是获取成功的回调函数
50             }
51             else {
52                 alert(‘Native device media streaming (getUserMedia) not supported in this browser.‘);
53             }
54         }
55         function shutdown() {
56             successFunc(null);
57         }
58         function successFunc(stream) {
59             //alert(‘Succeed to get media!‘);
60             if (video.mozSrcObject !== undefined) {
61                 //Firefox中,video.mozSrcObject最初为null,而不是未定义的,我们可以靠这个来检测Firefox的支持
62                 video.mozSrcObject = stream;
63             }
64             else {
65                 video.src = window.URL && window.URL.createObjectURL(stream) || stream;
66             }
67         }
68         function errorFunc(e) {
69             alert(‘Error!‘+e);
70         }
71         //拍照
72         function getPhoto() {
73             context1.drawImage(video, 0, 0,270,200); //将video对象内指定的区域捕捉绘制到画布上指定的区域,实现拍照。
74         }
75     </script>
76 </body>
77 </html>
时间: 2024-08-09 10:43:50

html5 摄像头的调用的相关文章

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地(转)

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地 我是应用在微信中,自定义菜单,菜单直接链接到这个HTML5页面,获取当前位置后,页面中定好目的地,这样打开页面后直接进入导航页面 可以省下先发送位置信息后,点确定再出导航,省一步, <!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8"> <meta name="viewpor

HTML5+Canvas+jQuery调用手机拍照功能实现图片上传(二)

上一篇只讲到前台操作,这篇专门涉及到Java后台处理,前台通过Ajax提交将Base64编码过的图片数据信息传到Java后台,然后Java这边进行接收处理,通过对图片数据信息进行Base64解码,之后使用流将图片数据信息上传至服务器进行保存,并且将图片的路径地址存进数据库.ok,废话不多说了,直接贴代码吧. 1.前台js代码: $.ajax({ async:false,//是否异步 cache:false,//是否使用缓存 type: "POST", data:{fileData:fi

HTML5+Ajax+Jquery调用Google搜索API实现搜索引擎,支持web,image,news,vedio4种模式!

原文:HTML5+Ajax+Jquery调用Google搜索API实现搜索引擎,支持web,image,news,vedio4种模式! 源代码下载地址:http://www.zuidaima.com/share/1550463589878784.htm web,image,news,vedio4种模式! 已经拿javaniu作出测试,下载即可查看 

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) , 已有13次阅读 ,共0个评论 依照我一惯得套路,我会先说一点废话. PhoneGap和Cordova什么关系?为什么有的地方叫Cordova而有的地方叫PhoneGap ?PhoneGap是一款HTML5平台.通过它,开发商能够使用HTML.CSS及JavaScript来开发本地移动应用程序.因此,眼下开

C#程序对本地摄像头的调用程序

程序运行效果: 程序调用DLL:http://files.cnblogs.com/wrl-wuqingxue/UICameraAssembly.zip 关键代码: 1 xmlns:UICamera="clr-namespace:UICamera;assembly=UICameraAssembly" ---相关dll调用 2 ........ 3 <UICamera:CapPlayer x:Name="webcamPlayer" Stretch="Fi

python+opencv实现摄像头的调用

apt install python-pip //安装pip pip --version //查看pip的版本信息 pip install opencv-python //安装opencv-python # -- coding:utf-8 -- import cv2 cap = cv2.VideoCapture(0) # 打开摄像头 while True: ret, frame = cap.read() # 读摄像头 cv2.imshow("video", frame) if cv2.

HTML5网页如何调用浏览器APP的微信分享功能?

if (/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))) { if (window.location.href.indexOf("?mo

html5调用手机相机并压缩、上传

近日刚做的一个功能,要在app里使用内嵌页面进行图像的上传.从功能上看,原生的实现应该是最好的.毕竟页面上所有的东西都隔着一个浏览器,所有的实现都要依赖浏览器提供的接口,不同的浏览器对接口的实现又有差异……到最后又会陷入兼容性的大坑!吐槽归吐槽,但是折腾的劲头不能丢! 使用input file[camera]属性调用相机 简直So easy! <input type="file" accept="image/*;" capture="camera&q

树莓派:使用OpenCV调用自带的摄像头.

总所周知,树莓派上,调用摄像头的指令有raspistill和raspivid.若要使用opencv对摄像头进行调用,不少人会出现 cvCaptureFromCAM(0)函数无法找到Pi Cam的错误情况. 但是当树莓派外接USB摄像头时,该函数可以正常使用.但对于一体机器,想要把树莓派封装成一个小机器人.使用自带 摄像头,就需要花点功夫去自己编译生成可以用opencv调用自带摄像头的程序了.过程可能有些许复杂. step 1 : install csi webcam step 2 : insta