Im Medienteil von WebRTC geht es um den Zugriff auf Hardware, die Aufnahmen aufnehmen kann. wie Kameras und Mikrofone, sowie das Streamen von Medien arbeiten. Es werden auch Displaymedien behandelt, die Erfassung von Daten.
Mediengeräte
Es erfolgt Zugriff auf alle vom Browser unterstützten Kameras und Mikrofone.
über das navigator.mediaDevices
-Objekt verwaltet. Anwendungen können Daten abrufen
die aktuelle Liste der verbundenen Geräte abrufen
und auch auf Änderungen warten,
Kameras und Microhpones werden über USB verbunden und können
während des Lebenszyklus der Anwendung getrennt werden. Da der Zustand eines Mediums
Gerät sich jederzeit ändern kann, wird empfohlen, Anwendungen für
um die Änderungen richtig verarbeiten zu können.
Einschränkungen
Beim Zugriff auf Mediengeräte empfiehlt es sich, möglichst detaillierte Einschränkungen wie möglich. Es ist zwar möglich, die Standardkamera zu öffnen mit einer einfachen Einschränkung des Mikrofons einen Medienstream die optimale Lösung für die Anwendung zu finden.
Die spezifischen Einschränkungen werden in einem MediaTrackConstraint
-Objekt definiert, eine für
Audio und ein Video für Video. Die Attribute in diesem Objekt sind vom Typ
ConstraintLong
, ConstraintBoolean
, ConstraintDouble
oder
ConstraintDOMString
. Dies kann entweder ein bestimmter Wert (z.B. eine Zahl,
boolescher Wert oder String), ein Bereich (LongRange
oder DoubleRange
mit einem Mindestwert und
Maximalwert) oder ein Objekt mit der Definition ideal
oder exact
. Für eine
-Wert angeben, versucht der Browser, einen möglichst ähnlichen Wert zu wählen.
Für einen Bereich wird der beste Wert in diesem Bereich verwendet. Wenn exact
gleich
werden nur Medienstreams, die genau mit dieser Einschränkung übereinstimmen,
zurückgegeben.
Nah
// Camera with a resolution as close to 640x480 as possible
{
"video": {
"width": 640,
"height": 480
}
}
Bereich
// Camera with a resolution in the range 640x480 to 1024x768
{
"video": {
"width": {
"min": 640,
"max": 1024
},
"height": {
"min": 480,
"max": 768
}
}
}
Genau passend
// Camera with the exact resolution of 1024x768
{
"video": {
"width": {
"exact": 1024
},
"height": {
"exact": 768
}
}
}
Um die Konfiguration eines bestimmten Tracks eines Mediastreams zu ermitteln,
können wir MediaStreamTrack.getSettings()
aufrufen, wodurch die
MediaTrackSettings
wird aktuell angewendet.
Es ist auch möglich, die Einschränkungen eines Titels über ein Mediengerät zu aktualisieren,
geöffnet wurden, indem applyConstraints()
für den Track aufgerufen wurde. Dadurch kann ein
ein Mediengerät neu zu konfigurieren, ohne vorher den
bestehenden Stream.
Displaymedien
Eine Anwendung, die Bildschirmaufnahmen und -aufzeichnungen ausführen möchte
die Display Media API verwenden. Die Funktion getDisplayMedia()
(die Teil
von navigator.mediaDevices
ähnelt getUserMedia()
und wird verwendet für:
um den Inhalt des Bildschirms (oder einen Teil davon, z. B. eine
. Der zurückgegebene MediaStream
funktioniert genauso wie bei Verwendung von
getUserMedia()
.
Die Einschränkungen für getDisplayMedia()
unterscheiden sich von denen für reguläre
Video- oder Audioeingabe.
{
video: {
cursor: 'always' | 'motion' | 'never',
displaySurface: 'application' | 'browser' | 'monitor' | 'window'
}
}
Der obige Code-Snipet zeigt, wie die speziellen Einschränkungen für die Bildschirmaufzeichnung funktioniert. Beachten Sie, dass diese Funktionen möglicherweise nicht von allen Browsern unterstützt werden, in denen Medien-Support.
Streams und Titel
Ein MediaStream
steht für einen Stream von Medieninhalten, der aus Titeln besteht.
(MediaStreamTrack
) aus Audio und Video. Du kannst alle Tracks aus abrufen,
MediaStream
durch Aufrufen von MediaStream.getTracks()
, wodurch ein Array von
MediaStreamTrack
-Objekte.
MediaStreamTrack
Ein MediaStreamTrack
hat ein kind
-Attribut, das entweder audio
oder video
ist.
gibt an, welche Art von Medien es repräsentiert. Jede Spur kann durch Umschalten
Die zugehörige enabled
-Eigenschaft. Ein Titel hat die boolesche Eigenschaft remote
, die angibt,
wenn sie von einem RTCPeerConnection
und von einem Remote-Peer stammt.