MediaDevices
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since septiembre de 2017.
* Some parts of this feature may have varying levels of support.
La interfaz MediaDevices brinda acceso a dispositivos de entrada de medios conectados, como cámaras y micrófonos, así como a compartir pantalla. En esencia, le permite obtener acceso a cualquier fuente de hardware de datos multimedia.
Propiedades de instancia
Hereda las propiedades de su interfaz padre, EventTarget.
Métodos de instancia
Hereda métodos de su interfaz padre, EventTarget.
enumerateDevices()-
Obtiene una matriz de información sobre los dispositivos de entrada y salida de medios disponibles en el sistema.
getSupportedConstraints()-
Devuelve un objeto conforme a
MediaTrackSupportedConstraintsque indica qué propiedades restringibles se admiten en la interfazMediaStreamTrack. Consulte la API de transmisión de medios para obtener más información sobre las restricciones y cómo usarlas. getDisplayMedia()-
Solicita al usuario que seleccione una pantalla o parte de una pantalla (como una ventana) para capturar como
MediaStreampara compartir o grabar. Devuelve una promesa que se resuelve en unMediaStream. getUserMedia()-
Con el permiso del usuario a través de un aviso, enciende una cámara y/o un micrófono en el sistema y proporciona un
MediaStreamque contiene una pista de video y/o una pista de audio con la entrada. selectAudioOutput()Experimental-
Pide al usuario que seleccione un dispositivo de salida de audio específico.
Eventos
devicechange-
Se activa cuando un dispositivo de entrada o salida de medios se conecta o retira de la computadora del usuario.
Ejemplo
// Coloque las variables en el ámbito global para que estén disponibles
// en la consola del navegador.
const video = document.querySelector("video");
const constraints = {
audio: false,
video: true,
};
navigator.mediaDevices
.getUserMedia(constraints)
.then((stream) => {
const videoTracks = stream.getVideoTracks();
console.log("Tengo transmisión con las restricciones:", constraints);
console.log(`Usando el dispositivo de vídeo: ${videoTracks[0].label}`);
stream.onremovetrack = () => {
console.log("Transmisión finalizada");
};
video.srcObject = stream;
})
.catch((error) => {
if (error.name === "OverconstrainedError") {
console.error(
`La resolución ${constraints.video.width.exact}x${constraints.video.height.exact} px no es compatible con su dispositivo.`,
);
} else if (error.name === "NotAllowedError") {
console.error(
"Debe otorgar permiso a esta página para acceder a su cámara y micrófono.",
);
} else {
console.error(`getUserMedia error: ${error.name}`, error);
}
});
Especificaciones
| Specification |
|---|
| Media Capture and Streams> # mediadevices> |
Compatibilidad con navegadores
Loading…
Véase también
- API de transmisión y captura de medios: La API de la que forma parte esta interfaz.
- API de captura de pantalla: La API que define el método
getDisplayMedia(). - API WebRTC
Navigator.mediaDevices: Devuelve una referencia a un objetoMediaDevicesque se puede usar para acceder a los dispositivos.- CameraCaptureJS: Captura y reproducción de video HTML usando
MediaDevicesy la API de grabación de MediaStream - OpenLang: Aplicación web de laboratorio de lenguaje de video HTML que utiliza
MediaDevicesy la API de grabación de MediaStream para la grabación de video