Mientras desarrollaba el chat de video con angular, enfrenté este problema.
ngOnInit() { navigator.mediaDevices && navigator.mediaDevices.getUserMedia({audio:true, video: true}) .then(res=> console.log(res)) .catch(err => console.log("err: ", err)); }Resultado de la consola:
err: DomException: no se pudo iniciar la fuente de video
Esto funciona bien en Desktop/Chrome, pero nunca funciona en Android/Chrome. Lo probé en emuladores de Android como Nox App Player y Bluestacks.
He alojado el proyecto angular con este comando.
ng servir --host MI_DIRECCIÓN_IP --disable-host-check --ssl
Desarrollador evangelista de Twilio aquí.
Cuando prueba esto en un dispositivo Android, ¿lo hace en localhost o en HTTPS? Solo puede usar getUserMedia en un dominio seguro o localhost.
Si necesito probar en un dispositivo, uso ngrok para hacer un túnel a mi servidor local. Luego puede acceder a la URL de ngrok a través de HTTPS.
Otra razón por la que esto podría no funcionar es que está usando la cámara en otra aplicación o pestaña del navegador, y el dispositivo solo permite el acceso a la cámara desde una aplicación a la vez.
Para los emuladores, asegúrese de tener las cámaras configuradas correctamente dentro del emulador.