Как использовать заднюю камеру вместо камеры для селфи в QuaggaJS - PullRequest
0 голосов
/ 23 января 2019

У меня проблема с открытием правильной камеры с помощью QuaggaJS. На некоторых устройствах открывается селфи-камера, а на других - камера, обращенная назад. Как настроить стандартную камеру на открытие для задней камеры? Потому что сканировать штрих-код с помощью вашей селфи-камеры не так просто ......

Это то, что я пробовал до сих пор:

 inputStream: {
                type : "LiveStream",
                constraints: {
                    width: {min: 640},
                    height: {min: 480},
                    facingMode: "environment",
                    aspectRatio: {min: 1, max: 2}
                }
            },

Во время инициализации я установил режим облицовки на окружение, но все равно камера селфи открыта .....

Может быть, в chrome также есть настройка, где вы можете это изменить? Но я мог бы найти это ......

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

То, что я делаю и работаю на некоторых смартфонах, выглядит следующим образом:

var backCamID = null;
var last_camera = null;
navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
  devices.forEach(function(device) {  
 if( device.kind == "videoinput" && device.label.match(/back/) !== null ){
      backCamID = device.deviceId;
    }
if( device.kind === "videoinput"){
last_camera = device.deviceId;
} 
});
if( backCamID === null){
backCamID = last_camera;
}
})
.catch(function(err) {         });

и в ограничениях поместите идентификатор камеры вместо FaceMode

deviceId: backCamID
0 голосов
/ 01 марта 2019

Поскольку QuaggaJS позволяет использовать либо «среду», либо «пользователя» в качестве облицовочного режима. Вы можете сделать элемент select, чтобы выбрать один из них.

HTML:

<select id="videoSource">
    <option value="enviroment" selected>Back</option>
    <option value="user">Front</option>
</select>

JS:

var _scannerIsRunning = false; // set to true at the end of startScanner()

    document.getElementById("videoSource").addEventListener("change", function () {
        if (_scannerIsRunning) {
            Quagga.stop();
        }
        startScanner(); // put your init function here

    }, false);

Заменить FaceMode на значение select

facingMode: document.getElementById("videoSource").value
...