我正在构建一个网络应用程序并尝试用我的相机捕获条形码。我正在使用 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();
});
}, []);