美文网首页
h5 自定义相机样式拍照(Navigator.mediaDevi

h5 自定义相机样式拍照(Navigator.mediaDevi

作者: ME88 | 来源:发表于2022-01-09 15:08 被阅读0次

    mediaDevices 是 Navigator 只读属性,返回一个 MediaDevices 对象,该对象可提供对相机和麦克风等媒体输入设备的连接访问,也包括屏幕共享。

    混合App开发:

    1、使用navigator.mediaDevices.getUserMedia调用系统原生摄像头功能

    2、video标签显示摄像头内容

    3、canvas标签获取图片

    html部分:

    <img />

    <canvas width="300" height="200" style="border: 1px solid;"></canvas>

    <video width="300" height="300"></video>

    <button id='c1'>拍照</button>

    <button id="c2">重拍</button>

    js部分:

    //let constraints={video: { facingMode: { exact: "environment" } } };    //强制使用后置摄像头

    //{video:true} 在移动设备上面,如下的例子默认优先使用前置摄像头

    let constraints={video:true};   

    navigator.mediaDevices.getUserMedia(constraints).then(res=>{

    let video=document.querySelector('video');

     video.srcObject=res;   //输出到video

    video.onloadedmetadata=function(){ video.play(); }    //视频加载成功之后播放

    var canvas = document.querySelector('canvas');

    var ctx = canvas.getContext("2d");

    document.querySelector('#c1').onclick=function(){

    ctx.drawImage(video, 0, 0, canvas.width, canvas.height);

    video.pause();

    var img=canvas.toDataURL();  //将图像输出为base64压缩的字符串 默认为image/png

    document.querySelector('img').src=img;

    }

    document.querySelector('#c2').onclick=function(){

    video.play();

    }

    })

    相关文章

      网友评论

          本文标题:h5 自定义相机样式拍照(Navigator.mediaDevi

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