我使用受限制的navigator.getUserMedia来访问用户的网络摄像头,将提要用作HTML <video>的源,然后将其流复制到drawImage<canvas>上下文中。我正在做所有这些事情,所以我可以间隔拍摄快照。

我想做的是,一旦页面开始拍摄快照,就锁定getUserMedia相机的焦点/曝光,以便在快照间隔之间可以更改环境,而无需更改光平衡或重新调整相机的聚焦。

有谁知道这在JS方面是否可行?

最佳答案

标记为重复:Take photo when the camera is automatically focused

抱歉-尽管这里可能是不好的做法-我将链接为何MediaCapture可能比预期的模糊或粗糙:

为什么iPad/iOS上的 native 摄像头分辨率-vs- getUserMedia有所不同?

简而言之:MediaCapture对媒体源进行了大量转换,这可能会导致图像模糊或颗粒状。

要解决此问题,请使用ImageCapture:



解决您的问题:

您可以通过UX和缩放滑块解决此问题。以下是有关如何使用ImageCapture(静态图像)实现此目的的信息。 MediaCapture(视频供稿)不允许使用此功能。您可以使用MediaCapture并具有“手动模式”之类的按钮,并允许用户选择正确的缩放比例来拍摄照片。

您还可以通过使更新循环“每次更新”执行n个ImageCaptures并具有缩放滑块来“模拟”摄像机。

https://developers.google.com/web/updates/2016/12/imagecapture

以下是有关如何使用它/polyfill的示例:https://github.com/GoogleChromeLabs/imagecapture-polyfill

确保您使用处理跨平台支持的最新getUserMedia polyfills:https://www.npmjs.com/package/webrtc-adapter

希望这可以帮助

关于javascript - getUserMedia锁定焦点/曝光,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29324556/

10-11 20:06