首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >点击屏幕触发getUserMedia自动对焦

点击屏幕触发getUserMedia自动对焦
EN

Stack Overflow用户
提问于 2020-02-12 12:14:40
回答 1查看 8.9K关注 0票数 13

带有getUserMedia的API对于在浏览器/ HTML5页面中有一个视频流非常有用,例如,参见https://www.html5rocks.com/en/tutorials/getusermedia/intro/https://simpl.info/getusermedia/sources/

从这个API,如何触发(智能手机)相机的自动对焦时,在视频显示点击?

这确实是几乎所有智能手机摄像头应用程序中常见的行为。

我还没有在API文档MediaDevices.getUserMedia()中找到任何关于“焦点”的信息

EN

回答 1

Stack Overflow用户

发布于 2020-02-17 22:02:30

这现在是不可能的,但在不久的将来可能是可能的。你应该看看MediaStream图像采集工作草案。这个规范描述了.applyConstraints的预先选项,最初是在媒体捕获和流中引入的。

它是如何按照规格工作的?首先,您需要通过使用.getCapabilities获得这些功能。如果浏览器可以管理焦点,则可以为当前约束设置focusMode: "auto" | "manual"focusDistance: number

焦点模式描述捕获设备的焦点设置(例如自动或手动)。 焦距是一个控制镜头焦距的数字相机设置。该设置通常表示距离,以米到最佳聚焦距离。

不幸的是,您目前无法控制焦点,但是您可以检查将来可能工作的代码。

关于支持focusDistance的Chrome问题Chrome平台状态MediaCapture图像实现状态.

CodeSandbox演示

代码语言:javascript
运行
复制
navigator.mediaDevices
  .getUserMedia({ video: true })
  .then(gotMedia)
  .catch(err => console.error("getUserMedia() failed: ", err));

function gotMedia(mediastream) {
  const video = document.querySelector("video");
  video.srcObject = mediastream;

  const track = mediastream.getVideoTracks()[0];
  const capabilities = track.getCapabilities();

  // Check whether focus distance is supported or not.
  if (!capabilities.focusDistance) {
    return;
  }

  // Map focus distance to a slider element.
  const input = document.querySelector('input[type="range"]');
  input.min = capabilities.focusDistance.min;
  input.max = capabilities.focusDistance.max;
  input.step = capabilities.focusDistance.step;
  input.value = track.getSettings().focusDistance;

  input.oninput = function(event) {
    track.applyConstraints({
      advanced: [{
        focusMode: "manual",
        focusDistance: event.target.value
      }]
    });
  };
  input.hidden = false;
}
代码语言:javascript
运行
复制
<video autoplay></video>
<input type="range" hidden />

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60188128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档