zoukankan      html  css  js  c++  java
  • js实现浏览器调用电脑的摄像头拍照

    <!DOCTYPE html>
     <html lang="en">
     
     <head>
       <style>
         * {
           margin: 0;
           padding: 0;
         }
       </style>
       <meta charset="UTF-8">
       <meta name="viewport" content="width=device-width, initial-scale=1.0">
       <meta http-equiv="X-UA-Compatible" content="ie=edge">
       <title>摄像头拍照</title>
     </head>
     
     <body>  
       <video id="video" width="480" height="320" controls>
       </video>
       <div>
         <button id="capture">拍照</button>
       </div>
       <canvas id="canvas" width="480" height="320"></canvas>
       <script>
         //访问用户媒体设备的兼容方法
         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) {
           //调用用户媒体设备, 访问摄像头
           getUserMedia({
             video: {
                480,
               height: 320
             }
           }, success, error);
         } else {
           alert('不支持访问用户媒体');
         }
     
         document.getElementById('capture').addEventListener('click', function () {
           context.drawImage(video, 0, 0, 480, 320);
         })
       </script>
     </body>
     
     </html>
    打开浏览器,点击允许就可以使用摄像头啦!!

    -----觉得有用来个关注呗  比心心♥♥♥♥♥♥♥♥♥♥♥♥-----

  • 相关阅读:
    SwiftUI 笔记
    SwiftUI 和 Combine 编程
    JQuery 总结(6) 锋利的jQuery
    offset scroll
    JQuery 总结(5)  总结各种小应用
    JQuery 总结(3) jQuery 各种事件
    JQuery 总结(2) jQuery 效果动画
    JQuery 总结(4) DOM操作
    sublime Text
    js总结(11) 语法字典 各种小应用
  • 原文地址:https://www.cnblogs.com/zk12138/p/10608666.html
Copyright © 2011-2022 走看看