API de captura de pantalla
La API de captura de pantalla incorpora adiciones a la API de Secuencias y Captura de Medios existente para permitir que el usuario seleccione una pantalla o parte de una pantalla (como una ventana) para capturar como una secuencia de medios. Esta transmisión se puede grabar o compartir con otros a través de la red.
Conceptos y uso de la API de captura de pantalla
La API de captura de pantalla es relativamente simple de usar. Su único método es MediaDevices.getDisplayMedia()
, cuyo trabajo es pedirle al usuario que seleccione una pantalla o parte de una pantalla para capturar en forma de MediaStream
.
Para comenzar a capturar video desde la pantalla, llama a getDisplayMedia()
en navigator.mediaDevices
:
captureStream =
await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
La Promesa
devuelta por getDisplayMedia()
se resuelve en un MediaStream
que transmite los medios capturados.
Consulte el artículo Uso de la API de captura de pantalla para obtener una visión más detallada de cómo usar la API para capturar el contenido de la pantalla como una transmisión.
Interfaces
CaptureController
-
Proporciona métodos que se pueden usar para manipular aún más una sesión de captura separada de su inicio a través de
MediaDevices.getDisplayMedia()
. Un objetoCaptureController
se asocia con una sesión de captura pasándolo a una llamadagetDisplayMedia()
como el valor de la propiedadcontroller
del objeto de opciones.
Adiciones a la interfaz MediaDevices
MediaDevices.getDisplayMedia()
-
El método
getDisplayMedia()
se agrega a la interfazMediaDevices
. Similar agetUserMedia()
, este método crea una promesa que se resuelve con unMediaStream
que contiene el área de visualización seleccionada por el usuario, en un formato que coincida con las opciones especificadas.
Adiciones a los diccionarios existentes
La API de captura de pantalla agrega propiedades a los siguientes diccionarios definidos por otras especificaciones.
MediaTrackConstraints
MediaTrackConstraints.cursor
-
Un
ConstrainDOMString
que indica si el cursor debe incluirse o no en la transmisión de la superficie de visualización capturada, y si debe estar siempre visible o si solo debe estar visible mientras el ratón está en movimiento. MediaTrackConstraints.displaySurface
-
Un
ConstrainDOMString
que indica qué tipo de superficie de visualización se va a capturar. El valor puede serbrowser
,monitor
owindow
. MediaTrackConstraints.logicalSurface
-
Indica si el video en la transmisión representa o no una superficie de visualización lógica (es decir, una que puede no ser completamente visible en la pantalla o puede estar completamente fuera de la pantalla). Un valor
true
indica que se va a capturar una superficie de visualización lógica. MediaTrackConstraints.suppressLocalAudioPlayback
-
Controla si el audio que se reproduce en una pestaña continuará reproduciéndose desde los altavoces locales de un usuario cuando se capture la pestaña, o si se suprimirá. Un valor
true
indica que se suprimirá.
MediaTrackSettings
MediaTrackSettings.cursor
-
Una cadena que indica si la superficie de visualización que se está capturando incluye o no el cursor del mouse y, de ser así, si solo es visible mientras el mouse está en movimiento o si siempre está visible. El valor es
always
,motion
onever
. MediaTrackSettings.displaySurface
-
Una cadena que indica qué tipo de superficie de visualización se está capturando actualmente. El valor puede ser
browser
,monitor
owindow
. MediaTrackSettings.logicalSurface
-
Un valor booleano, que es
true
si el video que se captura no corresponde directamente a una sola área de visualización en pantalla. MediaTrackSettings.suppressLocalAudioPlayback
-
Un valor booleano, que es
true
si el audio que se captura no se reproduce en los altavoces locales del usuario.
MediaTrackSupportedConstraints
MediaTrackSupportedConstraints.cursor
-
Un valor booleano, que es
true
si el user agent y el dispositivo admiten la restricciónMediaTrackConstraints.cursor
. MediaTrackSupportedConstraints.displaySurface
-
Un valor booleano, que es
true
si el entorno actual admite la restricciónMediaTrackConstraints.displaySurface
. MediaTrackSupportedConstraints.logicalSurface
-
Un valor booleano, que es
true
si el entorno actual admite la restricciónMediaTrackConstraints.logicalSurface
. MediaTrackSupportedConstraints.suppressLocalAudioPlayback
-
Un valor booleano, que es
true
si el entorno actual admite la restricciónMediaTrackConstraints.suppressLocalAudioPlayback
.
Validación de la política de permisos
Los User agent que admiten la Política de permisos (ya sea utilizando el HTTP Permissions-Policy
o el atributo <iframe>
allow
) puede especificar el deseo de usar la API de captura de pantalla usando la directiva display-capture
:
<iframe allow="display-capture" src="/some-other-document.html">…</iframe>
La lista de permitidos predeterminada es self
, que permite que cualquier contenido dentro del mismo origen use Captura de pantalla.
Especificaciones
Specification |
---|
Screen Capture # dom-mediadevices-getdisplaymedia |
Compatibilidad con navegadores
BCD tables only load in the browser