找回密码
 立即注册

QQ登录

只需一步,快速开始

barrylei

中级会员

29

主题

401

帖子

902

积分

中级会员

积分
902

活字格认证

barrylei
中级会员   /  发表于:2018-1-11 08:57  /   查看:7404  /  回复:2
在一些浏览器里已经可以使用web api调用摄像头功能了。
基于此可以经行拍照摄像功能,网上找了些资料,然后实现了简单的拍照功能
演示地址 [url]https://bingxl.cn/webrtc.html[/url]
  1. <!DOCTYPE html>
  2. <html lang="ZH-CN">
  3. <head>
  4.   <meta charset="utf-8">
  5.   <title>web RTC 测试</title>
  6.   <style>
  7.     .booth {
  8.       width:400px;
  9.      
  10.       background:#ccc;
  11.       border: 10px solid #ddd;
  12.       margin: 0 auto;
  13.     }
  14.   </style>
  15. </head>
  16. <body>
  17.   <div class="booth">
  18.     <video id="video" width="400" height="300"></video>
  19.     <button id='tack'> snap shot</button>
  20.     <canvas id='canvas' width='400' height='300'></canvas>
  21.     <img id='img' src=''>
  22.   </div>


  23.   <script>
  24.     var video = document.getElementById('video'),
  25.         canvas = document.getElementById('canvas'),
  26.         snap = document.getElementById('tack'),
  27.         img = document.getElementById('img'),
  28.         vendorUrl = window.URL || window.webkitURL;
  29.         
  30.     //媒体对象
  31.     navigator.getMedia = navigator.getUserMedia ||
  32.                          navagator.webkitGetUserMedia ||
  33.                          navigator.mozGetUserMedia ||
  34.                          navigator.msGetUserMedia;
  35.     navigator.getMedia({
  36.         video: true, //使用摄像头对象
  37.         audio: false  //不适用音频
  38.     }, function(strem){
  39.         console.log(strem);
  40.         video.src = vendorUrl.createObjectURL(strem);
  41.         video.play();
  42.     }, function(error) {
  43.         //error.code
  44.         console.log(error);
  45.     });
  46.     snap.addEventListener('click', function(){
  47.    
  48.         //绘制canvas图形
  49.         canvas.getContext('2d').drawImage(video, 0, 0, 400, 300);
  50.         
  51.         //把canvas图像转为img图片
  52.         img.src = canvas.toDataURL("image/png");
  53.         
  54.     })
  55.   </script>
  56. </body>
  57. </html>
复制代码


特别说明
  • 有些浏览器可能不支持此功能
  • 必须通过服务器打开页面,通过files://打开无效
  • 如果通过远程服务器打开则必须是https协议, http协议也无法使用

此博客出自稻草人LXB,转载请注明原文地址
博客地址:[url]http://www.cnblogs.com/scarecrowlxb/[/url]



我爱可乐

2 个回复

倒序浏览
bohe
注册会员   /  发表于:2018-3-9 13:40:03
沙发
还有与考勤机的通迅呢?
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2018-3-14 09:49:51
板凳
这需要您拿到厂家的接口文档,我们可以帮你看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部