跳到主要内容
帮助

如何在不支持切换视频源的网页应用中更改网络摄像头视频源

Aidan Fitzpatrick

发布于 2020年8月25日· 更新于 2020年11月17日

Cover image for: 如何在不支持切换视频源的网页应用中更改网络摄像头视频源

借助 WebRTC,让用户在浏览器中选择音频和视频源本应很简单。然而,并非所有网页视频应用都实现了更改网络摄像头视频源的控件。

在部分浏览器中,这并不是问题。例如,Firefox 和 Edge 都允许用户针对每个站点分别选择视频源。然而,虽然 Google Chrome 允许用户通过特殊的 chrome://settings/content/camera 网址选择默认网络摄像头,但这个默认摄像头选择并不会被 WebRTC 采用。许多用户已在 Google Chrome 论坛中对此提出抱怨,但目前尚看不到解决方案。

因此,当用户使用的应用不支持视频源选择(例如 vMix),同时使用的浏览器又不支持按站点选择视频源(例如 Chrome)时,就会陷入困境。不允许用户选择摄像头的视频应用最终会随机做出选择,这意味着用户可能无法使用自己想要的摄像头。

好在,我们可以用一个简单的小技巧,强制让 Chrome 上的网页视频应用选择指定的摄像头。

以下是针对 vMix 的 vmixcall.com 服务的具体操作方法:

  1. 打开 Chrome,开始你的视频通话会话。
  2. 使用 ⌥ Option + ⌘ Cmd + i 键盘快捷键,或通过 More Tools → Developer Tools 菜单,打开 Chrome 的“开发者工具”。
  3. 将以下代码粘贴到默认的“控制台”标签页中,然后按下回车键:
function gotDevices(deviceInfos) {
  // Look for the Reincubate Camo video input device.
  var deviceId;
  for (deviceInfo of deviceInfos) {
    if (deviceInfo.kind === 'videoinput' && deviceInfo.label === 'Reincubate Camo') {
      deviceId = deviceInfo.deviceId
      break;
    }
  }
  if (deviceId) {
    const constraints = {
      audio: true,
      video: { deviceId: { exact: deviceId } }
    };
    navigator.mediaDevices.getUserMedia(constraints).then(gotStream);
  } else {
    console.error('Unable to find Reincubate Camo video input device.');
  }
}
function gotStream (stream) {
  // Tell the vMix Call session to switch to a different stream.
  try {
    session.gotLocalStream(stream);
  } catch {
    console.error('Unable to trigger vMix Call session stream update.');
  }
}
// Ask the browser for a list of media devices.
navigator.mediaDevices.enumerateDevices().then(gotDevices)

完成后,Chrome 应会自动切换到 Camo 视频源。如果这个变通方法对你不起作用,请在评论中告诉我们,或直接联系我们,以便我们为你提供帮助。

效果大致如下:

如果你希望今后不再需要这样的变通方法,欢迎向你的视频服务提供商反馈,建议他们在应用中加入视频源选择功能。


关于作者

Aidan Fitzpatrick

创始人兼首席执行官

Aidan 于 2008 年创立了 Reincubate,此前他打造出了全球首款 iOS 数据恢复工具。自此,他带领公司成长为全球顶尖的独立软件开发商之一,与 AMD、Qualcomm、HP 等公司合作,率先为视频软件打造出具有重要意义的机器学习功能,其中以 Camo 应用生态系统最为突出。在 Aidan 的领导下,Reincubate 四次荣获英国商业界的最高荣誉,入选《星期日泰晤士报》百强科技企业榜单,并凭借 Apple Design Award 与 App Store 提名获得业界认可。他的研究成果与方法常被移动取证领域的学术论文引用,他还曾受邀在 Google、Microsoft、Snap 等公司举办的活动上发表演讲。


相关文章

需要帮助吗?

我们会尽力在一个工作日内回复所有消息。

support@reincubate.com
帮助