如何使用后置摄像头代替前置摄像头?

Posted

技术标签:

【中文标题】如何使用后置摄像头代替前置摄像头?【英文标题】:How to use back camera instead of the front camera? 【发布时间】:2016-03-06 19:33:16 【问题描述】:

我有一个 QR 扫描摄像头,但是当我在手机上打开我的网站时,面部摄像头会在我的网站中打开。我想用后置摄像头。

function setwebcam()


 var constraints =  audio: true, video: true ;




document.getElementById("result").innerhtml="- scanning -";
if(stype==1)

    setTimeout(captureToCanvas, 500);    
    return;

var n=navigator;
document.getElementById("outdiv").innerHTML = vidhtml;
v=document.getElementById("v");

if(n.getUserMedia)
    n.getUserMedia(constraints, success, error);
else
if(n.webkitGetUserMedia)

    webkit=true;
    n.webkitGetUserMedia(constraints, success, error);

else
if(n.mozGetUserMedia)

    moz=true;
    n.mozGetUserMedia(constraints, success, error);

【问题讨论】:

【参考方案1】:

如果你想强制设备使用前置摄像头,你可以在约束中添加facingMode:

var constraints =  
  audio: true,
  video: 
    facingMode: 'environment'
;

或使用exact:

facingMode:  exact: 'environment' 

【讨论】:

【参考方案2】:

您可以使用MediaStreamTrack.getSources(callback) 获取所有媒体源及其ID。使用其他属性,您可以过滤以检查它是音频视频还是按名称过滤。知道要显示的媒体源的 ID 后,使用它将其附加到视频标签。

这是一个很好的例子:https://simpl.info/getusermedia/sources/https://github.com/samdutton/simpl/blob/master/getusermedia/sources/js/main.js

【讨论】:

我用托盘改变我的鳕鱼我从这个链接中阅读了所有的代码,但是每个人都认为我做错了什么 当我打开一个后置摄像头而不是前置摄像头的页面时,如何开始?请帮助我 您的机会只是知道标识后置摄像头的名称或名称的一部分,因为获取用户媒体功能的每个 MediaTrack 都包含名称,并通过名称进行匹配。您也可以使用分辨率限制,但这并不能保证它是后置摄像头。

以上是关于如何使用后置摄像头代替前置摄像头?的主要内容,如果未能解决你的问题,请参考以下文章

android Camera 如何判断当前使用的摄像头是前置还是后置

android Camera 如何判断当前使用的摄像头是前置还是后置

如何检查设备是不是有分别用于前置和后置摄像头的闪光灯?

将前置摄像头更改为后置摄像头

前置摄像头和后置摄像头同时打开?

同时使用前置和后置摄像头android