getUserMedia()Camera Focus

时间:2017-04-24 04:14:38

标签: jquery getusermedia

我想问一下使用getUserMedia是否有相机对焦功能?我正在使用QuaggaJS项目 - https://serratus.github.io/quaggaJS/examples/live_w_locator.html

我想要做的是专注于相机,因为它有点模糊,无法检测到条形码。有谁知道这是否可能?

谢谢!

2 个答案:

答案 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

希望这会有所帮助