MediaDevices
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
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
MediaTrackSupportedConstraints
que 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
MediaStream
para 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
MediaStream
que 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
BCD tables only load in the browser
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 objetoMediaDevices
que se puede usar para acceder a los dispositivos.- CameraCaptureJS: Captura y reproducción de video HTML usando
MediaDevices
y la API de grabación de MediaStream - OpenLang: Aplicación web de laboratorio de lenguaje de video HTML que utiliza
MediaDevices
y la API de grabación de MediaStream para la grabación de video