现在的位置: 首页 > web前端 > 正文

javascript 浏览器调用摄像头问题

2020年07月15日 web前端 ⁄ 共 1143字 ⁄ 字号 评论关闭

  这几天在做浏览器拍照的功能,写的是调用前置摄像头,但是不知道为什么,调用的却是后置摄像头,我用的是华为平板,win10系统,chrome浏览器。


  浏览器调用摄像头使用到了webrtc


  if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){


  navigator.mediaDevices.getUserMedia({


  'audio':true,


  'video':{facingMode:'user'}//facingMode:{exact:"environment"}调用后置摄像头


  }).then(function(mediaStream){


  getVideoStream(mediaStream)


  }).catch(function(error){


  console.log(error);


  parent.layer.msg('检测到权限被禁用,请刷新页面重试',{


  area:['20%','8%'],


  offset:['46%','40%'],


  });


  })


  }elseif(navigator.getUserMedia){


  navigator.getUserMedia({


  'video':true,


  'audio':true


  },getVideoStream)


  }else{


  parent.layer.msg('该浏览器暂不支持调用摄像头',{


  area:['20%','8%'],


  offset:['46%','40%'],


  });


  }


  浏览器调用摄像头怎么做


  但我在华为Android机上测试,用的也是chrome浏览器,但是调用的却是前置摄像头。


  难道说Android和win10的前后置摄像头是相反的?


  我将{facingMode:'user'}改成facingMode:{exact:"environment"}(标准上是调用的后置摄像头,在平板上实际上是前置)


  chrome下弹出检测到权限被禁用的提示(这是我layer的效果),实际报错是OverconstrainedError,百度一下,全是说一些不要限制width、height之类什么的,但我也没设置这些玩意儿啊。。


  而当我在Edge浏览器上测试的时候,却一切都是正常的,{facingMode:'user'}调用的还是前置,facingMode:{exact:"environment"}调用的是后置,和Android一样,这也排除了Android和win10的前后置摄像头是相反的这个结论!!!


  总之,浏览器调用摄像头给大家简单的介绍了一些,希望大家多看看。


  

抱歉!评论已关闭.