- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用navigator.getUserMedia
限制访问用户的网络摄像头,使用提要作为 HTML 的源 <video>
然后将其流复制到 drawImage
一个<canvas>
语境。我这样做是为了每隔一段时间就拍一张快照。
我想做的是,一旦页面开始拍摄快照,就锁定 getUserMedia 相机的焦点/曝光,以便在快照间隔之间环境可以改变,而无需改变光平衡或相机重新对焦。
有人知道这在 JS 端是否可行吗?
最佳答案
标记为重复项:Take photo when the camera is automatically focused
首先 - 虽然这里的做法可能不好 - 我将链接到为什么 MediaCapture 可能比预期模糊或颗粒状:
为什么 iPad/iOS 上的 native 相机分辨率 - 与 getUserMedia 存在差异?
简而言之:MediaCapture 对媒体源进行大量转换,这可能会导致图像模糊或有颗粒感。
要解决此问题,请使用 ImageCapture:
The ImageCapture API enables control over camera features such as zoom, brightness, contrast, ISO and white balance. Best of all, Image Capture allows you to access the full resolution capabilities of any available device camera or webcam. Previous techniques for taking photos on the Web have used video snapshots, which are lower resolution than that available for still images.
解决您的问题:
您可以通过用户体验和缩放 slider 来解决这个问题。以下是有关如何使用 ImageCapture(静态图像)实现此目的的信息。 MediaCapture(视频源)不允许此功能。您可以使用 MediaCapture 并提供“手动模式”等按钮,并允许用户选择正确的缩放比例来拍摄照片。
您还可以通过每次更新执行 n 个 ImageCapture 的更新循环来“模拟”相机,并使用缩放 slider 。
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/
我们正在尝试制作视频 session 应用程序。在 Windows 上运行该应用程序进行测试时,视频打开得很好,但是当我们在物理设备(Android 手机)上运行它时,出现以下错误并且视频不显示。 E
我知道有几篇关于此的帖子,但我的问题不同。 在 Mozilla developer guide for getUserMedia 之后,我可以看到使用:navigator.getUserMedia()
我正在使用“facingMode”约束来在两个摄像头之间切换,但我不能完全确定用户端是否有一个“环境”摄像头(后置摄像头)。计算 enumerateDevices 函数返回的 promise 的“视频
这是我的问题。 我正在制作一个使用 JS-OCR 拍照并检测单词的小应用程序。它运作良好,但我只能使用前置摄像头。我的想法是只使用后置摄像头,没有必要切换摄像头。 我正在阅读 getUserMedia
我正在为相机和麦克风运行 getUserMedia, navigator.mediaDevices .getUserMedia({audio:true, video: true)
我在使用 getUserMedia 创建的预览视频时遇到问题。视频会连接,但只显示第一帧或第二帧,并在它们之间快速切换。使用 ImageCapture 时,我仍然可以获取相机所面对的画面,但预览窗口停
我有以下限制,这些限制在桌面上的 Chrome 上运行良好(模拟移动分辨率) const constraints = { audio: false, video: {
例如,假设我有 然后我开始流式传输视频: async function startVideo() { const video = document.querySelector("#video
我尝试使用 cordova + crosswalk 显示来 self 的手机摄像头的视频,并且可以从 getUserMedia() 获取视频流,但是当流显示在 html5 视频标签上时,它显示黑屏。
有什么方法可以使用HTML5的getUserMedia()从特定麦克风(而不是默认麦克风)获取音频输入? 最佳答案 恐怕您将需要使用getSources API,该API到目前为止还没有得到很好的支持
我正在使用getUserMedia api捕获屏幕并记录来自chrome扩展程序的音频(两者一起)。 api捕获屏幕,记录视频,但不捕获音频。 Chrome版本:55 没有捕获音频的任何原因。 API
我使用“前沿”HTML5/WebRTC API 编写了一个 Web 应用程序(请参阅下面的代码)。这适用于 Chrome v20(启用了 MediaStream 标志)和最新的 FF Nightly
我在网上找到了一些代码来访问我的网络摄像头。它访问网络摄像头,但不显示它所看到的内容。我知道这是正常的,因为文档中没有 html,但我想知道如何显示结果。我找到的代码是: var constraint
我正在尝试通过 webRTC 和 GetUserMedia 共享计算机的音频,但我不知道是否可以获取此流。 在 Linux 和 Firefox 上,当我请求具有以下约束的 GetUserMedia 时
我正在使用 getusermedia() 将网络摄像头用于在线应用程序。我使用的是罗技 C615 网络摄像头(即插即用),效果很好。 getusermedia() 将仅适用于即插即用网络摄像头,还是也
我无法在 Google Chrome (v21) 中显示视频流 代码 window.addEventListener('DOMContentLoaded', function() { n
如何在 javascript 中获取流对象的当前流时间? navigator.mediaDevices.getUserMedia(约束) .then(函数(流){ console.log("在此处获取
我一直在为我的下一个项目尝试使用 webRTC 创建视频聊天,但测试很困难。我有这个简单的代码来访问相机: navigator.getUserMedia = navigator.get
我正在使用 HTML 媒体捕获和 getUserMedia 方法。它不适用于 Chrome,我收到失败时的警报。 这是我使用的示例代码: if (navigator.getUserMedia) {
我知道 iOS 不支持 getUserMedia()。有没有办法绕过它,在 iOS 和 Android 移动浏览器上流式传输视频或从视频流中捕获图像? 最佳答案 我建议查看 Video 元素“srcO
我是一名优秀的程序员,十分优秀!