首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在移动设备上强制使用后置摄像头?

在移动设备上强制使用后置摄像头?
EN

Stack Overflow用户
提问于 2020-03-10 14:37:03
回答 1查看 1.1K关注 0票数 1

正在尝试将Instascan二维码扫描仪连接到AR.js。一切正常,但手机的前置摄像头打开,切换到后置摄像头不起作用。库分别与后置摄影机一起工作,并允许您切换,并且一起只打开第一个。Chrome浏览器不允许你在打开页面时选择摄像头,所以这个问题是相关的,主要是对他来说。

代码示例:CodepenMediaTrackSettings

代码语言:javascript
运行
复制
<html>
  <head>
    <script src="https://rawgit.com/schmich/instascan-builds/master/instascan.min.js"></script>
    <script src="https://aframe.io/releases/1.0.3/aframe.min.js"></script>
    <script src="https://raw.githack.com/jeromeetienne/AR.js/2.2.2/aframe/build/aframe-ar.js"></script> 
  </head>
  <body>
    <a-scene>
        <a-entity camera></a-entity>
    </a-scene>
 </body>
</html>
代码语言:javascript
运行
复制
// Instascan QR scanner
let scanner = new Instascan.Scanner(
  {
    video: document.getElementById('arjs-video')
  }
);
scanner.addListener('scan', function(content) {
  alert('Content: ' + content);
  window.open(content, "_blank");
});

// Instascan camera switch
Instascan.Camera.getCameras().then(function (cameras) {
  if (cameras.length > 1) {
    scanner.start(cameras[cameras.length - 1]);
  } else {
    scanner.start(cameras[0]);
  }
}).catch(function (e) {
  console.error(e);
});

// MediaTrackSettings
let supports = navigator.mediaDevices.getSupportedConstraints();
if (supports["facingMode"]) {
    alert('Not Support!');
} else {
  let constraints = {
    facingMode: { exact: "environment" }
};
myTrack.applyConstraints(constraints);
EN

Stack Overflow用户

发布于 2021-03-10 06:48:50

这就是对我有效的方法。我在我的微软Surface和一部安卓手机上进行了测试。

代码语言:javascript
运行
复制
        //Detect user's cameras
        Instascan.Camera.getCameras().then(function (cameras) {
            //If a camera is detected
            if (cameras.length > 0) {
                //If the user has a rear/back camera
                if (cameras[1]) {
                    //use that by default
                    scanner.start(cameras[1]);
                } else {
                    //else use front camera
                    scanner.start(cameras[0]);
                }
            } else {
                //if no cameras are detected give error
                console.error('No cameras found.');
            }
        }).catch(function (e) {
            console.error(e);
        });   

我没有包括MediaTrackSettings,也没有任何问题。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60612598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档