Ya no necesitas investigar más por todo internet porque estás al espacio adecuado, poseemos la solución que buscas y sin liarte.
Esta función ya no se recomienda. Aunque es posible que algunos navegadores aún lo admitan, es posible que ya se haya eliminado de los estándares web relevantes, que esté en proceso de ser eliminado o que solo se conserve por motivos de compatibilidad. Evite usarlo y actualice el código existente si es posible; consulte la tabla de compatibilidad al final de esta página para guiar su decisión. Tenga en cuenta que esta función puede dejar de funcionar en cualquier momento.
El desaprobado Navigator.getUserMedia()
El método solicita al usuario permiso para usar hasta un dispositivo de entrada de video (como una cámara o pantalla compartida) y hasta un dispositivo de entrada de audio (como un micrófono) como fuente para un MediaStream
.
Si se concede el permiso, MediaStream
cuyas pistas de video y / o audio provienen de esos dispositivos se envía a la devolución de llamada exitosa especificada. Si se deniega el permiso, no existen dispositivos de entrada compatibles o se produce cualquier otra condición de error, la devolución de llamada de error se ejecuta con un MediaStreamError
objeto que describe lo que salió mal. Si el usuario, en cambio, no hace ninguna elección, no se ejecuta ninguna devolución de llamada.
Este es un método heredado. Utilice el más nuevo navigator.mediaDevices.getUserMedia()
en lugar de. Aunque técnicamente no está en desuso, esta antigua versión de devolución de llamada está marcada como tal, ya que la especificación recomienda encarecidamente el uso de la nueva versión de devolución de promesa.
Sintaxis
navigator.getUserMedia(constraints, successCallback, errorCallback);
Parámetros
constraints
- A
MediaStreamConstraints
objeto que especifica los tipos de medios a solicitar, junto con los requisitos para cada tipo. Para obtener más detalles, consulte la sección de restricciones en el modernoMediaDevices.getUserMedia()
método, así como el artículo Capacidades, restricciones y configuraciones. successCallback
- Una función que se invoca cuando se aprueba la solicitud de acceso a los medios. La función se llama con un parámetro: el
MediaStream
objeto que contiene el flujo de medios. Su devolución de llamada puede asignar la secuencia al objeto deseado (como uno
elemento), como se muestra en el siguiente ejemplo:
function(stream)var video = document.querySelector('video'); video.srcObject = stream; video.onloadedmetadata=function(e)// Do something with the video here.;
errorCallback
- Cuando la llamada falla, la función especificada en el
errorCallback
se invoca con unMediaStreamError
el objeto como único argumento; este objeto está modelado enDOMException
. Consulte Errores a continuación para obtener una lista de los errores que pueden ocurrir.
Valor devuelto
Errores
page (“/ en-US / docs / Web / API / MediaDevices / getUserMedia”, “Errores”)
Ejemplos de
Anchura y altura
Aquí hay un ejemplo de uso getUserMedia()
, incluido el código para hacer frente a los prefijos de varios navegadores. Tenga en cuenta que esta es la forma obsoleta de hacerlo: consulte la sección Ejemplos en la MediaDevices.getUserMedia()
para ejemplos modernos.
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;if(navigator.getUserMedia) navigator.getUserMedia( audio:true, video: width:1280, height:720,function(stream)var video = document.querySelector('video'); video.srcObject = stream; video.onloadedmetadata=function(e) video.play();;,function(err) console.log("The following error occurred: "+ err.name););else console.log("getUserMedia not supported");
Permisos
Usar getUserMedia()
en una aplicación instalable (por ejemplo, un Aplicación Firefox OS), debe especificar uno o ambos de los siguientes campos dentro de su archivo de manifiesto:
"permissions":"audio-capture":"description":"Required to capture audio using getUserMedia()","video-capture":"description":"Required to capture video using getUserMedia()"
Ver permiso: captura de audio y permiso: captura de video para más información.
Compatibilidad del navegador
Escritorio | Móvil | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Cromo | Borde | Firefox | explorador de Internet | Ópera | Safari | WebView Android | Chrome Android | Firefox para Android | Opera Android | Safari en IOS | Internet de Samsung | |
getUserMedia |
5321 | 1279 | 17La sintaxis de restricción descrita aquí está disponible a partir de Firefox 38. Las versiones anteriores (32-37) usaban una sintaxis de restricción desactualizada, pero la sintaxis descrita aquí está disponible allí a través de adapter.js polyfill. | No | 401512-15 | 11-12 | 5340 | 5325 | 24La sintaxis de restricción descrita aquí está disponible a partir de Firefox 38. Las versiones anteriores (32-37) usaban una sintaxis de restricción desactualizada, pero la sintaxis descrita aquí está disponible allí a través de adapter.js polyfill. | 411412-14 | 11-12 | 6.01.5 |
Se debe usar un nuevo código Navigator.mediaDevices.getUserMedia()
en lugar de.
Ver también
MediaDevices.getUserMedia()
que reemplaza este método obsoleto.- WebRTC: la página de introducción a la API
- MediaStream API: la API para los objetos de flujo de medios
- Tomar fotos de la cámara web: un tutorial sobre el uso
getUserMedia() for taking photos rather than video.