| 
 | 
 
 
 楼主 |
发表于 2023-1-6 10:18:05
|
显示全部楼层
 
 
 
- <!doctype html>
 
 - <html lang="en">
 
 -         <head>
 
 -                 <meta charset="utf-8">
 
 -                 <title>test</title>
 
 -             <style>
 
 -             html,body{position:relative;height:100%;}
 
 -             .main { display: flex; flex-direction: row; justify-content:space-between;width:100%}
 
 -             #canvas{background-color:#eee;}
 
 -             .btnBox { display:flex;align-items:center;justify-content:center; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 60px; background-color: #eee; border-top: solid 1px #ddd; }
 
 -             #btnSave{margin-left:20px;}
 
 -         </style>
 
 -         </head>
 
  
-         <body>
 
 -         <div class="main">
 
 -             <video id="video" autoplay style="width: 640px;height: 480px"></video>
 
 -             <!--拍照按钮-->
 
 -             <!--描绘video截图-->
 
 -             <canvas id="canvas" width="640" height="480"></canvas>
 
 -         </div>
 
 -         
 
 -         <div class="text-center btnBox">
 
 -             <button id="capture" class="btn btn-success"><i class="fa fa-camera"></i> 拍照</button>  
 
 -             <button id="btnSave" class="btn btn-success"><i class="fa fa-save"></i> 使用此图片</button>
 
 -         </div>
 
 -   
 
 -         <script>
 
 -             window.onload = function () {
 
 -                 //访问用户媒体设备的兼容方法
 
 -                 function getUserMedia(constraints, success, error) {
 
 -                     if (navigator.mediaDevices.getUserMedia) {
 
 -                         //最新的标准API
 
 -                         navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error);
 
 -                     } else if (navigator.webkitGetUserMedia) {
 
 -                         //webkit核心浏览器
 
 -                         navigator.webkitGetUserMedia(constraints, success, error)
 
 -                     } else if (navigator.mozGetUserMedia) {
 
 -                         //firfox浏览器
 
 -                         navigator.mozGetUserMedia(constraints, success, error);
 
 -                     } else if (navigator.getUserMedia) {
 
 -                         //旧版API
 
 -                         navigator.getUserMedia(constraints, success, error);
 
 -                     }
 
 -                 }
 
  
-                 let video = document.getElementById('video');
 
 -                 let canvas = document.getElementById('canvas');
 
 -                 let context = canvas.getContext('2d');
 
 -                 function success(stream) {
 
 -                     //兼容webkit核心浏览器
 
 -                     //let CompatibleURL = window.URL || window.webkitURL;
 
 -                     //将视频流设置为video元素的源
 
 -                     // console.log(stream);
 
 -                     //video.src = CompatibleURL.createObjectURL(stream);
 
 -                     video.srcObject = stream;
 
 -                     video.play();
 
 -                 }
 
 -                 function error(error) {
 
 -                     console.log(`访问用户媒体设备失败${error.name}, ${error.message}`);
 
 -                 }
 
  
-                 if (navigator.mediaDevices.getUserMedia || navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia) {
 
 -                     if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
 
 -                         console.log("enumerateDevices() not supported.");
 
 -                         return;
 
 -                     }
 
 -                     // 列出摄像头和麦克风
 
 -                     var exArray = [];
 
 -                     navigator.mediaDevices.enumerateDevices()
 
 -                         .then(function (devices) {
 
 -                             devices.forEach(function (device) {
 
 -                                 // console.log(device.kind + ": " + device.label +
 
 -                                 // " id = " + device.deviceId);
 
 -                                 if (device.kind == "videoinput") {
 
 -                                     // alert(device.label);
 
 -                                     exArray.push(device.deviceId);
 
 -                                 }
 
 -                             });
 
 -                             var mediaOpts = { video: { width: 420, height: 120 } };
 
 -                             var mediaOpts =
 
 -                             {
 
 -                                 video:
 
 -                                 {
 
 -                                     deviceId: { exact: exArray[0] }
 
 -                                 }
 
 -                             };
 
 -                             //调用用户媒体设备, 访问摄像头
 
 -                             getUserMedia(mediaOpts, success, error);
 
 -                         })
 
 -                         .catch(function (err) {
 
 -                             console.log(err.name + ": " + err.message);
 
 -                         });
 
  
-                 } else {
 
 -                     alert('不支持访问用户媒体');
 
 -                 }
 
 -                 var img = new Image();
 
 -                 
 
 -                 document.getElementById('capture').addEventListener('click', function () {
 
 -                     context.drawImage(video, 0, 0, 640, 480);
 
 -                    //var image_data = context.getImageData(0, 0, 480, 320);
 
 -                     // var string = OCRAD(image_data.data);
 
 -                     // string = _arrayBufferToBase64(image_data);
 
 -                     var image = new Image();
 
 -                     image.src = canvas.toDataURL("image/jpeg");
 
 -                     console.log(image.src);
 
 -                 
 
 -                 })
 
 -             }
 
 -         </script>
 
 -         </body>
 
 - </html>
 
 
  复制代码 
 
 
我有一个调用摄像头的方法,现在就实时识别(不要按钮)图片中是否有二维码,如果有,打印出内容 
 
有大佬能帮帮我吗 |   
 
 
 
 |