Google est engagé à faire progresser l'équité raciale pour les communautés noires. Regarde comment.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

capture des médias et des contraintes

La partie média de couvertures WebRTC comment le matériel d'accès capable de capturer de la vidéo et de l'audio, tels que des caméras et des microphones, ainsi que la façon dont les flux multimédia travail. Il couvre également les médias d'affichage, qui est comment une application peut faire la capture d'écran.

dispositifs médias

Toutes les caméras et les microphones qui sont pris en charge par le navigateur sont accessibles et gérées par l' navigator.mediaDevices objet. Les applications peuvent récupérer la liste des périphériques connectés et écouter également des changements, puisque de nombreux appareils photo et microhpones connecter via USB et peuvent être connectés et déconnectés au cours du cycle de vie de l'application. Depuis l'état d'un dispositif multimédia peut changer à tout moment, il est recommandé que les applications pour enregistrer les modifications de l'appareil afin de bien les changements de poignée.

Contraintes

Lors de l'accès des périphériques multimédia, il est une bonne pratique de fournir des contraintes détaillées que possible. Bien qu'il soit possible d'ouvrir la caméra par défaut et microphone avec une contrainte simple, il peut fournir un flux de médias qui est loin d'être la plus optimale pour l'application.

Les contraintes spécifiques sont définies dans un MediaTrackConstraint objet, l' un pour l' audio et un pour la vidéo. Les attributs de cet objet sont de type ConstraintLong , ConstraintBoolean , ConstraintDouble ou ConstraintDOMString . Ceux - ci peuvent être soit une valeur spécifique (par exemple, un certain nombre, booléen ou chaîne), une plage ( LongRange ou DoubleRange avec une valeur minimale et maximale) ou un objet soit d' un ideal ou exact définition. Pour une valeur spécifique, le navigateur va tenter de choisir quelque chose d'aussi près que possible. Pour une gamme, la meilleure valeur dans cette plage sera utilisée. Lorsque exact est spécifié, seuls les flux de média qui correspondent exactement à cette contrainte seront retournés.

Près

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

Intervalle

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

Exact

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

Pour déterminer la configuration réelle d' une certaine trace d'un flux de média, nous pouvons appeler MediaStreamTrack.getSettings() qui retourne les MediaTrackSettings actuellement appliquées.

Il est également possible de mettre à jour les contraintes d'une piste à partir d' un périphérique multimédia , nous avons ouvert, en appelant applyConstraints() sur la piste. Cela permet une reconfiguration de l'application d'un périphérique multimédia sans avoir à fermer le flux existant.

médias d'affichage

Une application qui veut être en mesure d'effectuer la capture d'écran et l'enregistrement doit utiliser l'affichage API Media. La fonction getDisplayMedia() (qui fait partie de navigator.mediaDevices est similaire à getUserMedia() et est utilisé dans le but d'ouvrir le contenu de l'affichage (ou une partie de celui - ci, comme une fenêtre). Le retourné MediaStream fonctionne de la même que lors de l' utilisation getUserMedia() .

Les contraintes pour getDisplayMedia() diffèrent de celles utilisées pour la vidéo régulière ou une entrée audio.

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

Le snipet de code ci-dessus montre comment les contraintes particulières pour les travaux d'enregistrement de l'écran. Notez que ceux-ci pourraient ne pas être pris en charge par tous les navigateurs qui ont affichage le soutien des médias.

Les ruisseaux et les pistes

A MediaStream représente un flux de contenu multimédia, qui se compose de pistes ( MediaStreamTrack ) de l' audio et vidéo. Vous pouvez récupérer toutes les pistes de MediaStream en appelant MediaStream.getTracks() , qui retourne un tableau de MediaStreamTrack objets.

MediaStreamTrack

Un MediaStreamTrack a un kind bien qui est soit audio ou video , indiquant le type de support qu'il représente. Chaque piste peut être coupé par son basculement a enabled la propriété. Une piste a une propriété booléenne à remote qui indique si elle provient d'un RTCPeerConnection et provenant d'un poste distant.