如何选择使用 getUserMedia() 激活哪个相机进行条码扫描功能?

时间:2021-02-21 20:44:31

标签: javascript reactjs camera barcode quaggajs

我正在构建一个网络应用程序并尝试使用我的相机捕获条形码。我正在使用 QuaggaJS 库。

我知道该功能有效,因为当我在笔记本电脑网络摄像头上使用我的应用程序时,它捕获了条形码,但准确率只有 30%,但是当我尝试在我的手机上使用它时,它无法捕获条形码根本。我认为这是因为应用选择了我设备上的超广角镜头,这会使图像失真太多。

通过阅读文档,我看到了这一点:

要使用后置摄像头,请使用: { audio: true, video: { facingMode: { exact: "environment" } } }

然而,谁选择了后置摄像头,当用户有 5 个后置摄像头时会发生什么?我怎么知道哪个是正确的?

这是我的代码:

  useEffect(() => {
    Quagga.init(
      {
        inputStream: {
          name: "Live",
          type: "LiveStream",
          target: ".scannerArea", // Or '#yourElement' (optional),
          constraints: {
            facingMode: "environment",
          },
        },
        decoder: {
          readers: ["code_128_reader", "upc_reader", "ean_reader"],
        },
      },
      function (err) {
        if (err) {
          console.log(err);
          return;
        }
        console.log("Initialization finished. Ready to start");
        Quagga.start();
      }
    );
    Quagga.onDetected((result) => {
      let last_code = result.codeResult.code;
      alert(last_code);
      Quagga.stop();
    });
  }, []);

0 个答案:

没有答案