最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

电子禁用特定的相机设备访问或设置默认网络摄像头

运维笔记admin5浏览0评论

电子禁用特定的相机设备访问或设置默认网络摄像头

电子禁用特定的相机设备访问或设置默认网络摄像头

我们使用原子电子在“kiosk”类型设置中运行应用程序,我们有4个网络摄像头设备连接到物理计算机,我们特别需要其中1个用于电子浏览器内部的webrtc,然后我们使用其他3个一些C代码捕获静止帧。我们知道我们想要的设备的USB路径或/ dev / video {#}。

有没有办法在启动电子窗口之前禁止视图层访问节点中的3个网络摄像头?或者另一种选择是在我们启动视图图层之前设置默认摄像头,以便它默认为我们想要的网络摄像头。

在视图层,我们可以得到一个设备列表,看看它们是音频还是视频,但是我们无法获得他们的/ dev / video#或他们的USB路径来确定哪个是目标webrtc cam,所以这个还不是很有帮助。

任何帮助都很棒,我觉得发布一个问题很奇怪,因为在过去的12年里,我已经能够通过搜索找到我需要的东西了,但它已经花了大约3个小时的时间来寻求帮助。

回答如下:

我不认为Chromium提供了一种检索媒体源USB路径的方法。您可能需要显示配置屏幕以允许用户第一次选择正确的摄像头(类似于此demo),然后使用源/设备ID作为此时的强制约束。

另一种选择是根据设备标签找到正确的相机,但显然只有每个相机都有不同的标签才能使用。您可以通过在DevTools控制台中运行此代码段来获取所有设备标签和ID:

navigator.mediaDevices.enumerateDevices()
.then(devices => devices.forEach(
  device => console.log(`kind: ${device.kind}: ${device.label} id=${device.deviceId}`)
))
.catch(err => console.log(err));

无论哪种方式,一旦您拥有源/设备ID,您就可以将其指定为强制约束,以确保仅使用一个特定的摄像头:

navigator.webkitGetUserMedia(
  {
    audio: false,
    video: {
      mandatory: {
        chromeMediaSourceId: 'the camera source id obtained earlier',
      }
    }
  },
  stream => console.dir(stream),
  error => console.log(error)
);
发布评论

评论列表(0)

  1. 暂无评论