我想问一下使用getUserMedia是否有相机对焦功能?我正在使用QuaggaJS项目 - https://serratus.github.io/quaggaJS/examples/live_w_locator.html
我想要做的是专注于相机,因为它有点模糊,无法检测到条形码。有谁知道这是否可能?
谢谢!
答案 0 :(得分:0)
如果焦点不能很好地工作。您可以使用locate:false进行测试。 locate的默认值为true。
{
locate: false,
area: { // defines rectangle of the detection/localization area
top: "30%", // top offset
right: "30%", // right offset
left: "30%", // left offset
bottom: "30%" // bottom offset
}
}

根据需要调整区域。
答案 1 :(得分:0)
正确-尽管这里可能是不好的做法-我将链接到为什么MediaCapture可能比预期的模糊或粗糙:
简而言之:MediaCapture对媒体源进行了大量转换,这可能会导致图像模糊或颗粒状。传递给getUserMedia的MediaConstraints对象不允许您指定焦点。这取决于浏览器,通常应位于中心位置。
要解决此问题,请使用ImageCapture:
ImageCapture API可以控制相机功能,例如 变焦,亮度,对比度,ISO和白平衡。最重要的是,图像 Capture使您可以访问任何设备的全分辨率功能 可用的设备摄像头或网络摄像头。以前的服用方法 网络上的照片使用的视频快照较低 分辨率高于静止图像。
要解决您的问题,
如果QuaggaJS不使用ImageCapture,则不可能。如果可以,则可以通过UX和缩放滑块解决此问题。以下是有关如何使用ImageCapture(静态图像)实现此目的的信息。 MediaCapture(视频供稿)不允许使用此功能。您可以使用ImageCapture并具有一个“手动模式”之类的按钮,该按钮使用户可以选择正确的缩放比例来拍摄照片。
您还可以通过让每次更新执行n次ImageCaptures更新循环来“模拟”摄像机。
https://developers.google.com/web/updates/2016/12/imagecapture
以下是有关如何使用它/ polyfill的示例:https://github.com/GoogleChromeLabs/imagecapture-polyfill
确保您使用可处理跨平台支持的最新getUserMedia polyfill:https://www.npmjs.com/package/webrtc-adapter
希望这会有所帮助