Принудительное включение задней камеры на мобильном устройстве?

Пытаюсь подключить сканер QR кодов Instascan к AR.js. Все хорошо, но на телефоне включается фронтальная камера и никак не получается её переключить на заднюю. Библиотеки по отдельности работают с задней и позволяют переключать, а вместе только первая включается. Браузер Chrome не дает выбрать камеру при открытии страницы, поэтому проблема актуальна, прежде всего, для него.

В чем может быть проблема? Как принудительно перевести facingMode в "environment" или включить вторую камеру в браузере Chrome?

Пример кода: Codepen, MediaTrackSettings

<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>
// 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);

qr codepen
QR код на Codepen для удобной проверки проблемы на мобильном устройстве.


Ответы (0 шт):