在 Google Chrome 中使用 MediaStream API 更改 FocusMode 不起作用

2023-12-19

在 Google Chrome 浏览器中,我能够使用以下方式实时获取连接的 USB 摄像头的实时信息:获取用户媒体()API。我有一个滑块可以更改亮度值,效果很好。我还希望 focusMode 从连续的 to manual(相机始终以连续对焦模式启动)。

我有下面的 Javascript 代码来更改 FocusMode。

const video_constraints ={};

//Create the following keys for Constraint
video_constraints.video = {};
video_constraints.video.width = {};
video_constraints.video.width.exact = 1920; //set video width
video_constraints.video.height = {};
video_constraints.video.height.exact = 1080; //set video height
video_constraints.video.frameRate = {};
video_constraints.video.frameRate.exact = 60; //set video frame rate

//Start stream
navigator.mediaDevices.getUserMedia(video_constraints).then(handleStreamSuccessCb).catch(handleStreamErrorCb);


function handleStreamSuccessCb()
{
    console.log("Got Stream");
        window.stream = stream;
        videoElement.srcObject = stream;
    getVideoCaps(stream);
}

function getVideoCaps(stream)
{

    var videoTrackArray = stream.getVideoTracks();
    var videoTrack = null;

    for (i=0; i<videoTrackArray.length; i++)
    {
        if (videoTrackArray[i].kind == "video")
        {
            console.log("Video track found");
            videoTrack = videoTrackArray[i];
            break;
        }
    }

    if (videoTrack != null)
    {
        setTimeout(() => {

        const capabilities = videoTrack.getCapabilities()
        console.log("Caps:");
        console.log(capabilities);

        //Brightness:
        if (capabilities.brightness)
        {
            //configure slider settings
            brightnessSliderUI.min = capabilities.brightness.min;
            brightnessSliderUI.max = capabilities.brightness.max;
            brightnessSliderUI.step = capabilities.brightness.step;
            brightnessSliderUI.value = videoTrack.getSettings().brightness;

            //set inital value
            brightnessSliderValueUI.value = brightnessSliderUI.value;

            //slider change listener
            brightnessSliderUI.oninput = function() {
                    brightnessSliderValueUI.value = brightnessSliderUI.value;
                    videoTrack.applyConstraints({advanced : [{brightness: brightnessSliderUI.value}] });
                }

        }
        else
        {
            console.log("brightnessNot supported");
        }


        //Focus Mode
                if (capabilities.focusMode)
                {   
            console.log(videoTrack.getSettings());// By default continuous value is set for focusMode

            focusButtonUI.onclick = function(){
                console.log("focusButton Clicked");

                videoTrack.applyConstraints({advanced : [{focusMode: "manual"}]});
                // I am not able to set focusMode to manual with the above statement
                            console.log(videoTrack.getSettings());

            }
        }
      }, 500);
    }
    else
    {
        showErrorDialog("No Video track found in the stream");
    }
}

通过下面的行,我尝试切换 focusMode:

videoTrack.applyConstraints({advanced : [{focusMode: "manual"}]});

但这个焦点仍然在连续的 mode.

有人能说出上面的代码有什么问题吗? 预览实时时是否可以切换 focusMode?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Google Chrome 中使用 MediaStream API 更改 FocusMode 不起作用 的相关文章

  • 禁用外部点击时关闭模式

    我正在制作一些使用模式的博客物质化 但我的模态 onclick 外部和错误数据有问题 这是我的代码 main js function changepassword var user userlog val var content conte
  • Javascript 闭包 - 变量范围问题

    我正在阅读 Mozilla 开发者网站上有关闭包的内容 我注意到在他们的常见错误示例中 他们有以下代码 p Helpful notes will appear here p p E mail p
  • React hooks 状态变量在重新渲染后未更新

    在下面的示例中 我有一个想要更新的元素 水果 数组 并使用更新后的数组执行其他操作 在本例中保存更新后的列表 我的理解是重新渲染状态将更新 但它不在这里 或者状态更新和我的操作之间存在延迟 In the addFruit功能我可以看到 Pe
  • 如何在 React JS 中根据键创建动态表?

    我正在尝试在 React JS 中创建一个动态表组件 该组件当前只有一个静态标头 其中包括最常见的结果键 有些结果还包含更多信息 例如电话号码 学位 如何根据键 值的存在动态地使用附加列扩展表 我应该与state并在存在时使其可见 或者我应
  • 如何在 Lambda 中将对象上传到 S3?

    似乎无法将对象上传到 Lambda 中的 S3 本地一切正常 日志中没有错误可以显示出了什么问题 代码如下 console log Loading function var AWS require aws sdk var s3 new AW
  • 使用非常大的背景位置偏移是否存在性能问题?

    我正在构建一个进度条控件 并且正在研究它实际上并不显示进度 而只是旋转 正在发生某事 的指示器的情况 我的设计基本上是交替的对角条纹 本质上是一个像这样的理发杆 但是 旋转 由于希望将尽可能多的负载转移给渲染引擎 我想为此使用 CSS 过渡
  • 如何使传单圆圈标记可拖动?

    使用传单 我创建了一个L circleMarker我希望它是可拖动的 var marker L circleMarker new L LatLng 48 94603 2 25912 draggable true bindPopup Circ
  • 将 SVG 路径转换为绝对命令

    给定一个 SVG Path 元素 如何将所有路径命令转换为绝对坐标 例如 转换此路径
  • 有没有办法在 React 中自动播放音频而不使用 onClick 事件?

    我在尝试在 componentDidMount 中播放音频时收到此错误 未捕获 承诺中 DOMException play 失败 因为用户没有先与文档交互 componentDidMount document getElementById
  • tomcat 7.0.50 java websocket 实现给出 404 错误

    我正在尝试使用 Java Websocket API 1 0 JSR 356 中指定的带注释端点在 tomcat 7 0 50 上实现 websocket 以下是我如何对其进行编码的简要步骤 1 使用 ServerEndpoint注解编写w
  • jslint 配置 |传递全局变量

    我如何提醒 jshint 我有全局变量 即命名它们 我知道你可以做到这一点 但我不记得语法了 我在这里定义了一个全局的 function window glob1 local var 稍后像这样使用 不同的 IIFE function gl
  • Angular UI-Router:多个 URL 到单一状态

    我已经开始使用 Angular 的 ui router 并且我正在尝试弄清楚如何让多个 URL 引用单个状态 例如 orgs 12354 overview retyrns the same pages as org overview 我的
  • jquery 中可点击 div 中的按钮

    我有整个 div 您可以单击它来切换该 div 的主要部分 问题是我在该 div 中也有可点击的按钮 当我点击它时 它会执行它应该做的事情 但同时也会切换整个 div 我怎样才能禁用它 Use event stopPropagation 单
  • 在 javascript 中实现固定位置会导致 Safari 滚动时出现抖动

    固定位置不适用于我的用例 因为它固定在浏览器窗口上 您可能会处于文本在屏幕右侧之外且无法到达的状态 无论如何 我尝试使用绝对定位 然后调整javascript中的 顶部 它在 Firefox 和 Chrome 中运行良好 但在 Safari
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • 如何使用 NextJS 使用自托管字体face?

    使用 NextJS 的字体 我已经阅读了有关如何在 NextJS 中使用自托管字体的不同主题 我得到了什么 wait compiling 当我这样做时 font face font family montserrat src url myp
  • 检查浏览器空闲的替代方法

    我有一个简单的网络信息亭 在鼠标未使用 jQuery 移动 30 秒后显示用户操作提示 var i null body wrap mousemove function clearTimeout i overlay fadeOut i set
  • 如何将项目插入到特定索引处的空数组中?

    我想将一个项目插入到空数组的指定索引中 我看到有 Array prototype splice 方法 但是 如果我在空数组上使用 splice 它只会添加项目来结束数组 如下所示 var a a splice 3 0 item 3 cons
  • 如何将数据推送到嵌套对象

    如何将另一个元素推入variables来自以下对象的属性 var request name Name id 3 rules name Rule name tags tagId 1 variables variable var1 matchT
  • 在 Meteor 应用程序中实现 MongoDB 2.4 的全文搜索

    我正在考虑向 Meteor 应用程序添加全文搜索 我知道 MongoDB 现在支持此功能 但我对实现有一些疑问 启用文本搜索功能的最佳方法是什么 textSearchEnabled true 在 Meteor 应用程序中 有没有办法添加索引

随机推荐

  • 悬停时停止 jQuery 循环功能

    我有一个函数叫做testimonials 它基本上循环遍历一组 div 而它对一个 div 进行动画处理 将其动画处理出来 然后将下一个 div 进行动画处理 现在 我想让它在鼠标位于当前 DIV 上时停止在当前 DIV 上 也称为悬停它
  • 无法安装任何NPM包,错误4058

    我正在尝试在我的项目上安装 Grunt 它曾经完美地工作 但现在由于某种原因 它不能工作 每次我尝试安装 Grunt 时 都会收到此错误 npm ERR path C irrelevent path project node modules
  • 加速 Java

    这确实是两个问题 但它们非常相似 为了简单起见 我想我应该把它们放在一起 Firstly 给定一个已建立的 Java 项目 除了简单的代码优化之外 还有哪些不错的方法可以加速它 Secondly 用Java从头开始编写程序时 有哪些好的方法
  • 使用 go 结构进行 ASN.1 解组会出现标签不匹配错误

    我正在尝试对以下定义执行 ASN 1 marshal unmarshal 操作 ACEI SEQUENCE message MessageFields neRegNumber OCTET STRING OPTIONAL gpsInfo Gp
  • Python 相当于 find -exec

    我正在尝试在 Popen 中运行此 BASH 命令 find tmp mount type f name rpmsave exec rm f 但每次我得到 查找 stderr 中缺少 exec n 的参数 与此等效的 python 是什么
  • 结构对齐和类型重新解释

    假设我有两种类型 A 和 B 然后我做这个类型 struct Pair A a B b 现在我有一个这样的功能 void function Pair pair 让我们假设function只会使用a该对的一部分 那么这样使用和调用函数是不是未
  • 压缩列表中具有奇数和偶数索引的元素

    我想将偶数和奇数元素压缩到列表中以生成对列表 如下所示 A B C D E F gt A B C D E F 以优雅的功能方式做到这一点的最简洁的表达方式是什么 在 2 8 中 您可能会使用以下方法 scala gt val a ABCDE
  • 无法配置数据源:未指定“url”属性,无法配置嵌入数据源。春天

    我已经检查了所有类似的问题 每个答案都说我需要指定我已经这样做的 driverClassName 这是我的 application yml spring application name cibus backend datasource d
  • Tensorflow:variable_scope 值错误

    这是我的代码如下 Tensorflow LSTM classification of 16x30 images from future import print function import tensorflow as tf from t
  • Microsoft 不推荐的实体框架自我跟踪实体

    在查看微软的网站时 我发现他们不再推荐使用自我跟踪实体 下面的每个链接都是 MS 资源 其中提到不要使用 STE 显示实体框架团队可用的模板 EF 设计器代码生成模板 http msdn microsoft com en US data J
  • 无法在 Spring Web 服务中反序列化 START_ARRAY 令牌之外的对象实例

    我目前在 Android 上连接到我的网络服务时遇到问题 我使用 jackson core databind annotation 2 2 4 和 Spring RESTWebService 如果我从浏览器访问 URL 我可以看到 JSON
  • 为什么(begin)在Scheme中有效?

    我在 Racket 和 Chez Scheme 中进行了测试 发现 begin 是可以接受的 同时 define a begin 不是 例如我得到的球拍 gt begin gt define a begin stdin 56 10 begi
  • 使用具有自定义连接对象的 EF 存储库?

    我被困在 EF 6 中 而且文档很少 现在一天都没有解决这个问题 我尝试在我们拥有的数据库存储库上使用 Code First 由于复杂的初始化我must使用我自己的工厂方法来初始化上下文子类 我must放入我自己的 sql 连接 或者创建我
  • 冒充标准用户

    我正在尝试创建一个正在运行的进程 该进程被提升为使用标准用户令牌重新启动资源管理器 我所做的是首先以管理员身份运行主进程 然后拍摄运行的快照 if Process32First hSnapshot pe32 do if wcsicmp pe
  • 控制 r Shiny 中传单中 popupImage 的大小

    我很难控制图像的大小popupImage 地图视图包 下面是一个可重现的闪亮示例 其中我有一个带有弹出窗口的标记 当我设置width 300 弹出窗口显示正确 但我想显示更大的图像 宽度 300 https i stack imgur co
  • Catalyst“SwiftUI.AccessibilityNode”不是已知的可序列化元素

    我使用 Xcode 11 1 创建了一个新的 iOS 单页应用程序 包括 SwiftUI 并启用了 Mac Catalyst 在我的 Mac 当然是 macOS 10 15 上运行新项目后 在窗口上点击一次后出现以下错误 2019 10 1
  • ASP-Net MVC5 Crystal Reports:系统找不到指定的路径

    有什么建议么 Code ReportDocument rpt new ReportDocument rpt Load Server MapPath CrystalReports P Order rpt TableLogOnInfo logo
  • 有没有关于 Spanned 和 Spannable 文本的示例

    我正在努力使用 EditText 和 Spannable 文本对象 这些天 我已经阅读了 API 文档大约十次 即使我不确定我是否理解正确 所以我正在寻找一种示例来展示如何使用 EditText 和 Spannable 由于您没有指定您无法
  • 如何修改Imagenet Caffe模型?

    我想修改 ImageNet caffe 模型 如下所述 由于时间网络的输入通道数与此不同 空间网络 20 vs 3 我们对 ImageNet 模型滤波器进行平均 先跨过通道一层 然后复制平均结果 20 时间网络的初始化 我的问题是如何才能达
  • 在 Google Chrome 中使用 MediaStream API 更改 FocusMode 不起作用

    在 Google Chrome 浏览器中 我能够使用以下方式实时获取连接的 USB 摄像头的实时信息 获取用户媒体 API 我有一个滑块可以更改亮度值 效果很好 我还希望 focusMode 从连续的 to manual 相机始终以连续对焦