Google se compromete a avanzar en la equidad racial para las comunidades negras. Ver cómo.
Esta página se ha traducido con Cloud Translation API.
Switch to English

captura y limitaciones de los medios

La parte media de cubiertas de WebRTC cómo se accede al hardware capaz de capturar vídeo y audio, tales como cámaras y micrófonos, así como la forma de medios corrientes de trabajo. También cubre los medios de visualización, que es cómo una aplicación puede hacer la captura de pantalla.

dispositivos de medios

Todas las cámaras y micrófonos que son compatibles con el navegador se accede y se gestionan a través de la navigator.mediaDevices objeto. Las aplicaciones pueden recuperar la lista actual de los dispositivos conectados y también escuchar los cambios, ya que muchas cámaras y microhpones conectan a través de USB y pueden ser conectados y desconectados durante el ciclo de vida de la aplicación. Dado que el estado de un dispositivo de medios puede cambiar en cualquier momento, se recomienda que las aplicaciones se registran los cambios dispositivo con el fin adecuadamente los cambios de la manija.

restricciones

Al tener acceso a dispositivos de medios, es una buena práctica proporcionar como restricciones detalladas como sea posible. Si bien es posible abrir la cámara por defecto y el micrófono con una simple restricción, podría entregar un flujo de medios que está lejos de ser el más óptimo para la aplicación.

Las limitaciones específicas que se definen en un MediaTrackConstraint objeto, una para audio y otra para vídeo. Los atributos de este objeto son de tipo ConstraintLong , ConstraintBoolean , ConstraintDouble o ConstraintDOMString . Estos pueden ser o bien un valor específico (por ejemplo, un número, boolean o de cadena), un rango ( LongRange o DoubleRange con un valor mínimo y máximo) o un objeto, ya sea con un ideal o exact definición. Para un valor específico, el navegador intentará recoger algo tan cerca como sea posible. Para un rango, se utilizará el mejor valor en ese rango. Cuando exact se especifica, sólo se devolverán los flujos de medios que coinciden exactamente con esa restricción.

Cerca

 // Camera with a resolution as close to 640x480 as possible
{
    "video": {
        "width": 640,
        "height": 480
    }
}
 

Rango

 // Camera with a resolution in the range 640x480 to 1024x768
{
    "video": {
        "width": {
            "min": 640,
            "max": 1024
        },
        "height": {
            "min": 480,
            "max": 768
        }
    }
}
 

Exacto

 // Camera with the exact resolution of 1024x768
{
    "video": {
        "width": {
            "exact": 1024
        },
        "height": {
            "exact": 768
        }
    }
}
 

Para determinar la configuración actual de una pista determinada de un flujo de medios de comunicación tiene, podemos llamar MediaStreamTrack.getSettings() que devuelve los MediaTrackSettings aplicados actualmente.

También es posible actualizar las limitaciones de una pista de un dispositivo de medios hemos abierto, llamando applyConstraints() en la pista. Esto permite que una aplicación reconfigurar un dispositivo de medios sin tener que cerrar la secuencia existente.

medios de visualización

Una aplicación que quiere ser capaz de realizar capturas de pantalla y grabación debe utilizar la pantalla de Media API. La función getDisplayMedia() (que es parte de navigator.mediaDevices es similar a getUserMedia() y se utiliza para el propósito de abrir el contenido de la pantalla (o una parte de ella, tal como una ventana). La devuelto MediaStream funciona el mismo que cuando se utiliza getUserMedia() .

Las limitaciones para getDisplayMedia() difieren de las utilizadas para vídeo normal o entrada de audio.

 {
    video: {
        cursor: 'always' | 'motion' | 'never',
        displaySurface: 'application' | 'browser' | 'monitor' | 'window'
    }
}
 

El código superior muestra cómo las restricciones especiales para grabación de la pantalla funciona. Tenga en cuenta que estos podrían no ser compatibles con todos los navegadores que tienen apoyo de los medios de visualización.

Arroyos y pistas

A MediaStream representa una corriente de contenido de medios, que consiste en pistas ( MediaStreamTrack ) de audio y vídeo. Puede recuperar todas las pistas de MediaStream llamando MediaStream.getTracks() , que devuelve una matriz de MediaStreamTrack objetos.

MediaStreamTrack

Un MediaStreamTrack tiene un kind de propiedad que es ya sea audio o video , lo que indica el tipo de medios que representa. Cada pista se puede silenciar conmutando su enabled propiedad. Una pista tiene una propiedad booleana remote que indica si se obtiene por un RTCPeerConnection y procedentes de un par remoto.