h5使用攝像頭拍照

后臺(tái)管理系統(tǒng)用到快遞單號(hào)拍照留存的功能,原需求是手機(jī)拍照再上傳,使用效率過(guò)低,一線操作員不樂意用,因此倉(cāng)庫(kù)給統(tǒng)一配備攝像頭,使用瀏覽器喚醒攝像頭功能進(jìn)行拍照上傳,廢話不多說(shuō),直接上代碼。

<!-- 樣式部分可以忽略 -->
<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屬性設(shè)置
          video: {
              width: 300,
              height: 300
           },
          // audio屬性設(shè)置
          audio: true
      };
                            
      navigator.mediaDevices.getUserMedia(constraints).then(mediaStream => {
          // 成功返回promise對(duì)象,接收一個(gè)mediaStream參數(shù)與video標(biāo)簽進(jìn)行對(duì)接
          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標(biāo)簽上設(shè)置寬高 -->
    <canvas id="canvas" width="300px" height="300px"></canvas>
</div>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容