美文网首页
h5使用摄像头拍照

h5使用摄像头拍照

作者: drneilc | 来源:发表于2023-02-18 14:56 被阅读0次

    后台管理系统用到快递单号拍照留存的功能,原需求是手机拍照再上传,使用效率过低,一线操作员不乐意用,因此仓库给统一配备摄像头,使用浏览器唤醒摄像头功能进行拍照上传,废话不多说,直接上代码。

    <!-- 样式部分可以忽略 -->
    <style>
      * {
          padding: 0;
          margin: 0;
      }
    
      div {
          width: 100vw;
          height: 100vh;
          display: flex;
          justify-content: center;
          align-items: center;
      }
    
      .btn {
          width: 100px;
          height: 50px;
          border-radius: 10px;
          background: #ff9900;
          line-height: 50px;
          text-align: center;
          color: #fff;
          box-shadow: 0 0 10px #999;
      }
    
      video,
      canvas {
          width: 300px;
          height: 300px;
          border: 2px solid #000;
          border-radius: 10px;
          margin-left: 5px;
      }
    </style>
    
    <!-- js -->
    <script>
      // 开启摄像
      document.getElementById('play').onclick = () => {
          let constraints = {
              // video属性设置
              video: {
                  width: 300,
                  height: 300
               },
              // audio属性设置
              audio: true
          };
                                
          navigator.mediaDevices.getUserMedia(constraints).then(mediaStream => {
              // 成功返回promise对象,接收一个mediaStream参数与video标签进行对接
              document.getElementById('video').srcObject = mediaStream;
              document.getElementById('video').play();
          });
          // 失败就失败了
      };
      
      // 拍照、canvas绘制
      document.getElementById('take').onclick = () => {
          let ctx = document.getElementById('canvas').getContext('2d');
          ctx.drawImage(document.getElementById('video'), 0, 0, 300, 300);
      };
    </script>
    
    <!-- html -->
    <div>
        <div id="play" class="btn">开启摄像</div>
        <div id="take" class="btn">拍照</div>
        <video id="video"></video>
        <!-- 尽量在canvas标签上设置宽高 -->
        <canvas id="canvas" width="300px" height="300px"></canvas>
    </div>
    

    相关文章

      网友评论

          本文标题:h5使用摄像头拍照

          本文链接:https://www.haomeiwen.com/subject/allbkdtx.html