Tengo una página web servida a través de https con el siguiente script:
const userMediaConstraints = { video: true, audio: true }; navigator.mediaDevices.getUserMedia(userMediaConstraints) .then(stream => { console.log("Media stream captured.") });Cuando lo abro en Firefox o Safari, aparece un mensaje que solicita permiso para usar la cámara y el micrófono. Pero no en Chrome u Opera. Allí, el acceso está bloqueado de forma predeterminada y tengo que ir a la configuración del sitio y permitir manualmente el acceso, que está configurado como Predeterminado (preguntar).
window.isSecureContext es true .navigator.permissions.query({name:'camera'}) se resuelve en name: "video_capture", onchange: null, state: "prompt" .Parece que Chrome y Opera deberían mostrar un aviso, pero no lo hacen. Lo probé en una máquina diferente con un usuario diferente que no tenía historial previo con el sitio web con el mismo resultado.
¿Qué podría estar mal?
Dijiste que probaste Safari, lo que me sugiere que estás en una Mac.
Este problema en la lista de problemas de Chrome se ajusta muy bien a su descripción. (Llegué allí a partir de esto en el webrtc/samples GitHub). Todo se reduce a una configuración de seguridad de Mac OS. Citandoel comentario #3 :
Verifique en Preferencias del sistema Mac> Seguridad y privacidad> Privacidad> Micrófono, que Chrome está marcado.
(En su caso, dado que desea un video, probablemente también deba marcar la casilla en Seguridad y privacidad> Privacidad> Cámara o similar).