账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    html5前端调用摄像头
    68
    0

    我搜到以下代码可以直接直接在浏览器端运行。现在我想要实现拍摄人,想要在照相的时候实现自动对焦人物,并且加上那种边框。这个效果要怎么实现呢?

    如果浏览器端实现不了这个功能的话,有没有什么别的技术方案可以使用呢?谢谢。

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <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>
      <p>
        <button id="capture">拍照</button>
      </p>
      <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 : {width: 480, height: 320}}, success, error);
        } else {
          alert('不支持访问用户媒体');
        }
     
        document.getElementById('capture').addEventListener('click', function () {
          context.drawImage(video, 0, 0, 480, 320);      
        })
      </script>
    </body>
    </html>
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 花生哥哥 普通会员 1楼

      在HTML5中,我们不能直接调用摄像头,但是可以通过JavaScript和HTML5的canvas元素来实现类似的功能。以下是一个简单的示例:

      ```html

      ```

      在这个示例中,我们首先获取canvas元素,然后创建一个新的Image对象。我们设置图片的URL,当图片加载完成后,我们使用canvas的drawImage方法将图片绘制到canvas上。这样,用户就可以在浏览器中查看并操作图片。

      注意,这只是一个基本的示例,实际的摄像头调用可能需要更复杂的逻辑,例如处理网络请求、错误处理等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部