如何在不支持的网络应用程序中更改网络摄像头视频源
使用WebRTC可以很容易地使用户在浏览器中选择音频和视频源 。但是,并非所有基于Web的视频应用程序都实现用于更改网络摄像头视频源的控件。
对于某些浏览器,这不是问题。例如,Firefox和Edge都允许用户为每个站点选择视频源。但是,尽管Google Chrome浏览器允许用户使用特殊的chrome://settings/content/camera
URL选择默认的网络摄像chrome://settings/content/camera
,但WebRTC并未使用此默认的摄像头选项。许多用户在Google Chrome浏览器论坛中对此有所抱怨 ,但是目前还没有解决方案。
因此,如果用户使用未实现视频源选择的应用程序(例如vMix),并且使用了不允许基于站点的视频源选择的浏览器(例如Chrome),则会陷入困境。不允许用户选择摄像机的视频应用最终会做出任意选择,这意味着用户可能无法使用他们想要的摄像机。
幸运的是,我们可以使用一个快速的技巧来迫使Chrome上的基于网络的视频应用选择特定的摄像头。
以下是vMix的vmixcall.com服务的实现方法:
加载Chrome并开始您的视频聊天会话。
使用
⌥ Option
+⌘ Cmd
+i
键盘快捷键或使用“More Tools
→“Developer Tools
菜单,在Chrome中打开“开发人员工具”。将以下代码粘贴到默认的“控制台”选项卡中,然后按Enter键:
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视频源。如果该解决方法对您不起作用,请在评论中让我们知道,或者直接与我们联系,以便我们为您提供帮助。
看起来像这样:
如果您以后希望避免这种情况,请游说您的视频提供商在其应用程序中添加视频选择。