Con WebRTC es fácil permitir que el usuario elija las fuentes de audio y vídeo en un navegador. Sin embargo, no todas las apps de vídeo web incluyen controles para cambiar la fuente de vídeo de la webcam.
Con algunos navegadores esto no supone un problema. Por ejemplo, tanto Firefox como Edge permiten a los usuarios seleccionar una fuente de vídeo por sitio. Sin embargo, aunque Google Chrome permite a los usuarios elegir su webcam predeterminada mediante la URL especial chrome://settings/content/camera, WebRTC no utiliza esta elección de cámara predeterminada. Muchos usuarios se han quejado de esto en los foros de Google Chrome, pero no se atisba ninguna solución.
Por eso, cuando los usuarios utilizan apps que no implementan la selección de fuente de vídeo (como vMix) junto con un navegador que no permite la selección de fuente de vídeo por sitio (como Chrome), se quedan atascados. Las apps de vídeo que no permiten a los usuarios elegir una cámara acaban haciendo una elección arbitraria, lo que significa que los usuarios pueden no poder usar la cámara que quieren.
Por suerte, hay un truco rápido que podemos usar para forzar a una app de vídeo web en Chrome a seleccionar una cámara concreta.
Así es como se hace para el servicio vmixcall.com de vMix:
- Abre Chrome e inicia tu sesión de videochat.
- Abre las «Herramientas para desarrolladores» en Chrome con el atajo de teclado
⌥ Option+⌘ Cmd+i, o mediante el menúMore Tools→Developer Tools. - Pega el siguiente código en la pestaña «Consola» predeterminada y pulsa Intro:
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)
Hecho esto, Chrome debería cambiar automáticamente a la fuente de vídeo de Camo. Si esta solución alternativa no te funciona, cuéntanoslo en los comentarios o ponte en contacto con nosotros directamente para que podamos ayudarte.
Así es como se ve:
Si quieres evitar tener que hacer esto en el futuro, anima a tu proveedor de vídeo a añadir una selección de vídeo en su app.
