提问人:sayar 提问时间:11/11/2023 最后编辑:sayar 更新时间:11/11/2023 访问量:52
在 chrome 中使用条形码检测 API 不一致
Using Barcode Detection API in chrome is inconsistent
问:
我正在尝试为我的 Web 应用程序使用相机实现条码扫描器。 它应该主要检测包含某些 ID 的 Code 39 条形码。我正在使用 asp.net 核心 razor 页面来构建我的 Web 应用。 在 chrome android 中使用条形码检测 Api 和如下所示的代码,我能够毫无问题地读取条形码。
<!DOCTYPE html>
<html>
<head>
<style>
video {
width: 100%;
}
</style>
</head>
<body>
<video></video>
<script>
const videoElement = document.querySelector('video');
function scan(detector) {
detector.detect(videoElement)
.then(console.log)
.catch(console.error);
}
navigator.mediaDevices.getUserMedia({
audio: false,
video: {
facingMode: "environment",
zoom: 200
}
}).then((stream) => {
videoElement.srcObject = stream;
videoElement.play();
let detector = new BarcodeDetector({ formats: ['code_39'] });
setInterval(scan, 300, detector);
}, console.error)
</script>
</body>
</html>
但是在另一部手机上进行测试,它无法检测到任何条形码。可能是什么问题?
我手机的 chrome 版本是 104,另一部手机是 110。这两款手机都支持所有必要的 API,例如条形码检测 API 以及媒体捕获和流 API。
考虑到问题可能出在条形码检测器上,我使用了其他库,例如:
但仍然没有得到任何结果。
还认为相机质量以某种方式导致了问题,我使用条形码生成器生成条形码并使用了图像,但它仍然没有检测到任何东西。
我还尝试使用网络工作者进行解码,以防主线程繁忙,最后,没有区别。
使用scandit条码扫描器或dynamsoft条码扫描器,我能够完美地检测条码。 在其他设备上测试后,有些设备检测没有问题,而另一些设备则没有检测到任何东西。我不知道这种不一致行为的原因是什么。
你认为可能是什么原因?您有什么解决方案建议?
答: 暂无答案
评论