MediaTrackConstraints
Das MediaTrackConstraints
Wörterbuch wird verwendet, um eine Reihe von Medienfähigkeiten und die Werte oder Wertebereiche, die sie annehmen können, zu beschreiben.
Ein Constraints-Wörterbuch wird in die Methode applyConstraints()
des MediaStreamTrack
-Interfaces übergeben, um einem Skript zu ermöglichen, eine Reihe von exakten (erforderlichen) Werten oder Bereichen und/oder bevorzugten Werten oder Bereichen für den Track festzulegen.
Das zuletzt angeforderte Set von benutzerdefinierten Einschränkungen kann durch Aufrufen von getConstraints()
abgerufen werden.
Objekte dieses Typs können auch übergeben werden an:
-
Die Methode
MediaDevices.getUserMedia()
, um Einschränkungen für einen von Hardware wie einer Kamera oder einem Mikrofon angeforderten Medienstream anzugeben. -
Die Methode
MediaDevices.getDisplayMedia()
, um Einschränkungen für einen von einem Bildschirm oder Fensteraufnahme angeforderten Medienstream anzugeben.
Einschränkungen
Die folgenden Typen werden verwendet, um eine Einschränkung für eine Eigenschaft anzugeben. Sie erlauben Ihnen, einen oder mehrere exact
Werte anzugeben, von denen einer der Wert des Parameters sein muss, oder eine Reihe von ideal
Werten, die, wenn möglich, verwendet werden sollten. Sie können auch einen einzelnen Wert (oder ein Array von Werten) angeben, den der Benutzer-Agent nach der Anwendung aller strengeren Einschränkungen bestmöglich zu erfüllen versucht.
Um mehr darüber zu erfahren, wie Einschränkungen funktionieren, siehe Fähigkeiten, Einschränkungen und Einstellungen.
Hinweis:
min
und exact
Werte sind in Einschränkungen, die in MediaDevices.getDisplayMedia()
-Aufrufen verwendet werden, nicht erlaubt — sie führen zu einem TypeError
— aber sie sind in Einschränkungen erlaubt, die in MediaStreamTrack.applyConstraints()
-Aufrufen verwendet werden.
ConstrainBoolean
Der ConstrainBoolean
Einschränkungstyp wird verwendet, um eine Einschränkung für eine Eigenschaft anzugeben, deren Wert ein Boolescher Wert ist. Ihr Wert kann entweder auf einen Booleschen Wert (true
oder false
) oder auf ein Objekt gesetzt werden, das die folgenden Eigenschaften enthält:
exact
-
Ein Boolean, der der Wert der Eigenschaft sein muss. Wenn die Eigenschaft nicht auf diesen Wert gesetzt werden kann, schlägt das Matching fehl.
ideal
-
Ein Boolean, der einen idealen Wert für die Eigenschaft angibt. Wenn möglich, wird dieser Wert verwendet; wenn nicht, verwendet der Benutzer-Agent den nächstmöglichen passenden Wert.
ConstrainDouble
Der ConstrainDouble
Einschränkungstyp wird verwendet, um eine Einschränkung für eine Eigenschaft anzugeben, deren Wert eine Gleitkommazahl mit doppelter Genauigkeit ist. Ihr Wert kann entweder auf eine Zahl oder auf ein Objekt gesetzt werden, das die folgenden Eigenschaften enthält:
max
-
Eine Dezimalzahl, die den größten zulässigen Wert der beschriebenen Eigenschaft angibt. Wenn der Wert nicht gleich oder kleiner als dieser Wert bleiben kann, schlägt das Matching fehl.
min
-
Eine Dezimalzahl, die den kleinsten zulässigen Wert der beschriebenen Eigenschaft angibt. Wenn der Wert nicht gleich oder größer als dieser Wert bleiben kann, schlägt das Matching fehl.
exact
-
Eine Dezimalzahl, die einen bestimmten, erforderlichen Wert angibt, den die Eigenschaft haben muss, um akzeptabel zu sein.
ideal
-
Eine Dezimalzahl, die einen idealen Wert für die Eigenschaft angibt. Wenn möglich, wird dieser Wert verwendet; wenn nicht, verwendet der Benutzer-Agent den nächstmöglichen passenden Wert.
ConstrainDOMString
Der ConstrainDOMString
Einschränkungstyp wird verwendet, um eine Einschränkung für eine Eigenschaft anzugeben, deren Wert ein String ist. Ihr Wert kann entweder auf einen String, ein Array von Strings oder auf ein Objekt gesetzt werden, das die folgenden Eigenschaften enthält:
exact
-
Ein String oder ein Array von Strings, von denen einer der Wert der Eigenschaft sein muss. Wenn die Eigenschaft nicht auf einen der aufgelisteten Werte gesetzt werden kann, schlägt das Matching fehl.
ideal
-
Ein String oder ein Array von Strings, die ideale Werte für die Eigenschaft angeben. Wenn möglich, wird einer der aufgelisteten Werte verwendet; wenn nicht, verwendet der Benutzer-Agent den nächstmöglichen passenden Wert.
ConstrainULong
Der ConstrainULong
Einschränkungstyp wird verwendet, um eine Einschränkung für eine Eigenschaft anzugeben, deren Wert eine Ganzzahl ist. Ihr Wert kann entweder auf eine Zahl oder auf ein Objekt gesetzt werden, das die folgenden Eigenschaften enthält:
max
-
Eine Ganzzahl, die den größten zulässigen Wert der beschriebenen Eigenschaft angibt. Wenn der Wert nicht gleich oder kleiner als dieser Wert bleiben kann, schlägt das Matching fehl.
min
-
Eine Ganzzahl, die den kleinsten zulässigen Wert der beschriebenen Eigenschaft angibt. Wenn der Wert nicht gleich oder größer als dieser Wert bleiben kann, schlägt das Matching fehl.
exact
-
Eine Ganzzahl, die einen bestimmten, erforderlichen Wert angibt, den die Eigenschaft haben muss, um akzeptabel zu sein.
ideal
-
Eine Ganzzahl, die einen idealen Wert für die Eigenschaft angibt. Wenn möglich, wird dieser Wert verwendet; wenn nicht, verwendet der Benutzer-Agent den nächstmöglichen passenden Wert.
Instanzeigenschaften
Eine Kombination, aber nicht unbedingt alle, der folgenden Eigenschaften wird auf dem Objekt existieren. Dies kann daran liegen, dass ein bestimmter Browser die Eigenschaft nicht unterstützt oder weil sie nicht zutrifft. Zum Beispiel, weil RTP einige dieser Werte während der Aushandlung einer WebRTC-Verbindung nicht bereitstellt, wird ein Track, der mit einer RTCPeerConnection
verknüpft ist, bestimmte Werte wie facingMode
oder groupId
nicht enthalten.
Instanzeigenschaften aller Medientracks
deviceId
-
Ein
ConstrainDOMString
Objekt, das eine Geräte-ID oder ein Array von Geräte-IDs angibt, die akzeptabel und/oder erforderlich sind. groupId
-
Ein
ConstrainDOMString
Objekt, das eine Gruppen-ID oder ein Array von Gruppen-IDs angibt, die akzeptabel und/oder erforderlich sind.
Instanzeigenschaften von Audiotracks
autoGainControl
-
Ein
ConstrainBoolean
Objekt, das angibt, ob automatische Verstärkungsregelung bevorzugt und/oder erforderlich ist. channelCount
-
Ein
ConstrainULong
, das die Kanalanzahl oder den Kanalanzahlbereich angibt, der akzeptabel und/oder erforderlich ist. echoCancellation
-
Ein
ConstrainBoolean
Objekt, das angibt, ob Echounterdrückung bevorzugt und/oder erforderlich ist. latency
-
Ein
ConstrainDouble
, das die Latenz oder den Latenzbereich angibt, der akzeptabel und/oder erforderlich ist. noiseSuppression
-
Ein
ConstrainBoolean
, das angibt, ob Rauschunterdrückung bevorzugt und/oder erforderlich ist. sampleRate
-
Ein
ConstrainULong
, das die Abtastrate oder den Abtastratenbereich angibt, der akzeptabel und/oder erforderlich ist. sampleSize
-
Ein
ConstrainULong
, das die Abtastgröße oder den Abtastgrößenbereich angibt, der akzeptabel und/oder erforderlich ist. volume
Veraltet Nicht standardisiert-
Ein
ConstrainDouble
, der die Lautstärke oder den Lautstärkebereich angibt, der akzeptabel und/oder erforderlich ist.
Instanzeigenschaften von Bildtracks
whiteBalanceMode
-
Ein
String
, der einen der folgenden Werte angibt:"none"
,"manual"
,"single-shot"
oder"continuous"
. exposureMode
-
Ein
String
, der einen der folgenden Werte angibt:"none"
,"manual"
,"single-shot"
oder"continuous"
. focusMode
-
Ein
String
, der einen der folgenden Werte angibt:"none"
,"manual"
,"single-shot"
oder"continuous"
. pointsOfInterest
-
Die Pixelkoordinaten auf dem Sensor eines oder mehrerer interessanter Punkte. Dies ist entweder ein Objekt in der Form { x:value, y:value } oder ein Array solcher Objekte, wobei value ein Double-Precision-Integer ist.
exposureCompensation
-
Ein
ConstrainDouble
(ein Double-Precision-Integer), das die Blendenkorrektur um bis zu ±3 angibt. colorTemperature
-
Ein
ConstrainDouble
(ein Double-Precision-Integer), das eine gewünschte Farbtemperatur in Kelvin angibt. iso
-
Ein
ConstrainDouble
(ein Double-Precision-Integer), das eine gewünschte ISO-Einstellung angibt. brightness
-
Ein
ConstrainDouble
(ein Double-Precision-Integer), das eine gewünschte Helligkeitseinstellung angibt. contrast
-
Ein
ConstrainDouble
(ein Double-Precision-Integer), das den Grad des Unterschieds zwischen Hell und Dunkel angibt. saturation
-
Ein
ConstrainDouble
(ein Double-Precision-Integer), das den Grad der Farbsättigung angibt. -
Ein
ConstrainDouble
(ein Double-Precision-Integer), das die Intensität der Kanten angibt. focusDistance
-
Ein
ConstrainDouble
(ein Double-Precision-Integer), der die Entfernung zu einem fokussierten Objekt angibt. zoom
-
Ein
ConstrainDouble
(ein Double-Precision-Integer), das die gewünschte Brennweite angibt. torch
-
Ein boolescher Wert, der definiert, ob das Zusatzlicht kontinuierlich angeschaltet ist, was bedeutet, dass es eingeschaltet bleibt, solange der Track aktiv ist.
Instanzeigenschaften von Videotracks
aspectRatio
-
Ein
ConstrainDouble
, der das Video-aspect_ratioSeitenverhältnis oder den Bereich von akzeptablen und/oder erforderlichen Seitenverhältnissen angibt. facingMode
-
Ein
ConstrainDOMString
Objekt, das eine oder mehrere akzeptable und/oder erforderliche Ausrichtungen angibt. frameRate
-
Ein
ConstrainDouble
, der die Bildfrequenz oder den Bereich von Bildfrequenzen angibt, die akzeptabel und/oder erforderlich sind. height
-
Ein
ConstrainULong
, der die Videohöhe oder den Bereich von Höhen angibt, die akzeptabel und/oder erforderlich sind. width
-
Ein
ConstrainULong
, der die Videobreite oder den Bereich von Breiten angibt, die akzeptabel und/oder erforderlich sind. resizeMode
-
Ein
ConstrainDOMString
Objekt, das einen oder mehrere Modi angibt, die der Benutzer-Agent verwenden kann, um die Auflösung und Bildrate eines Videotracks abzuleiten. Zulässige Werte sind:crop-and-scale
-
Der Benutzer-Agent kann das Zuschneiden und Herunterskalieren der Auflösung oder Bildrate aus dem Roh-Output der Hardware/des Betriebssystems verwenden, um andere Einschränkungen zu erfüllen. Diese Einschränkung erlaubt Entwicklern, ein herunterskaliertes Video zu erhalten, selbst wenn das durch ihre Einschränkungen angegebene Format nicht nativ von der Hardware unterstützt wird.
none
-
Der Benutzer-Agent verwendet die von der zugrundeliegenden Hardware, wie einer Kamera oder ihrem Treiber, oder dem Betriebssystem bereitgestellte Auflösung.
Wenn
resizeMode
nicht angegeben ist, wählt der Browser eine Auflösung basierend auf einer Fitness-Distanz, die die angegebenen Einschränkungen und beide der zulässigen Werte berücksichtigt.
Instanzeigenschaften von Bildschirmfreigabe-Tracks
Diese Einschränkungen gelten für die video
Eigenschaft des Objekts, das an getDisplayMedia()
übergeben wird, um einen Stream für die Bildschirmfreigabe zu erhalten.
displaySurface
-
Ein
ConstrainDOMString
, der die Arten von Anzeigeoberflächen angibt, die vom Benutzer ausgewählt werden können. Dies kann ein einzelner der folgenden Strings sein oder eine Liste von ihnen, um mehrere Quelloberflächen zu erlauben:browser
-
Der Stream enthält die Inhalte eines einzelnen Browser-Tabs, der vom Benutzer ausgewählt wurde.
monitor
-
Der Video-Track des Streams enthält den gesamten Inhalt eines oder mehrerer Bildschirme des Benutzers.
window
-
Der Stream enthält ein einzelnes Fenster, das vom Benutzer zum Teilen ausgewählt wurde.
logicalSurface
-
Ein
ConstrainBoolean
Wert, der entweder einen einzelnen booleschen Wert oder eine Menge davon enthalten kann und angibt, ob dem Benutzer erlaubt werden soll, Quelloberflächen auszuwählen, die nicht direkt einer Anzeigezone entsprechen. Diese können Backing-Puffer für Fenster einschließen, um den Inhalt von überlappenden Fenstern zu erfassen, oder Puffer, die größere Dokumente enthalten, die durch Scrollen in ihren Fenstern vollständig sichtbar gemacht werden müssen. suppressLocalAudioPlayback
Experimentell-
Ein
ConstrainBoolean
Wert, der die angeforderten oder obligatorischen Einschränkungen für densuppressLocalAudioPlayback
einschränkbaren Eigenschaftswert beschreibt. Diese Eigenschaft steuert, ob der Ton, der in einem Tab abgespielt wird, auch weiterhin auf den lokalen Lautsprechern des Benutzers ausgegeben wird, wenn der Tab erfasst wird.
Spezifikationen
Siehe auch
- Media Capture and Streams API
- Fähigkeiten, Einschränkungen und Einstellungen
- Bildschirmaufnahme-API
- Verwendung der Bildschirmaufnahme-API
MediaStreamTrack.getConstraints()
MediaStreamTrack.applyConstraints()
MediaDevices.getUserMedia()
MediaDevices.getDisplayMedia()
MediaDevices.getSupportedConstraints()
MediaTrackSupportedConstraints
MediaStreamTrack.getSettings()