MediaTrackConstraints
Das Dictionary MediaTrackConstraints beschreibt eine Reihe von Medienfunktionen und die Werte, die diese jeweils annehmen können.
Ein Dictionary mit Constraints wird an die Methode applyConstraints() der Schnittstelle MediaStreamTrack übergeben. Damit kann ein Skript für den Track exakte (erforderliche) Werte oder Wertebereiche und/oder bevorzugte Werte oder Wertebereiche festlegen.
Die zuletzt angeforderten benutzerdefinierten Constraints können durch Aufruf von getConstraints() abgerufen werden.
Objekte dieses Typs können auch an folgende Methoden übergeben werden:
-
MediaDevices.getUserMedia(), um Constraints für einen Medienstream festzulegen, der von Hardware wie einer Kamera oder einem Mikrofon angefordert wird. -
MediaDevices.getDisplayMedia(), um Constraints für einen Medienstream festzulegen, der durch Aufnahme eines Bildschirms oder Fensters angefordert wird.
Constraints
Die folgenden Typen werden verwendet, um einen Constraint für eine Eigenschaft festzulegen. Sie ermöglichen es, einen oder mehrere exact-Werte anzugeben, von denen einer dem Wert der Eigenschaft entsprechen muss, oder eine Reihe von ideal-Werten, die nach Möglichkeit verwendet werden sollen. Sie können auch einen einzelnen Wert (oder ein Array von Werten) angeben, dem der User Agent nach Anwendung aller strengeren Constraints so gut wie möglich entsprechen wird.
Weitere Informationen zur Funktionsweise von Constraints finden Sie unter Funktionen, Constraints und Einstellungen.
Hinweis:
min- und exact-Werte sind in Constraints für Aufrufe von MediaDevices.getDisplayMedia() nicht zulässig – sie verursachen einen TypeError. In Constraints für Aufrufe von MediaStreamTrack.applyConstraints() sind sie dagegen zulässig.
ConstrainBoolean
Der Constraint-Typ ConstrainBoolean wird verwendet, um einen Constraint für eine Eigenschaft mit einem booleschen Wert festzulegen. Sein Wert kann entweder ein boolescher Wert (true oder false) oder ein Objekt mit den folgenden Eigenschaften sein:
exact-
Ein boolescher Wert, den die Eigenschaft annehmen muss. Wenn die Eigenschaft nicht auf diesen Wert gesetzt werden kann, schlägt der Abgleich fehl.
ideal-
Ein boolescher Wert, der einen idealen Wert für die Eigenschaft angibt. Falls möglich, wird dieser Wert verwendet. Andernfalls verwendet der User Agent den nächstmöglichen Wert.
ConstrainBooleanOrDOMString
Der Constraint-Typ ConstrainBooleanOrDOMString wird verwendet, um einen Constraint für eine Eigenschaft festzulegen, deren Wert ein boolescher Wert oder ein String ist. Er kann die Werte annehmen, die in den Abschnitten ConstrainBoolean und ConstrainDOMString beschrieben sind.
ConstrainDouble
Der Constraint-Typ ConstrainDouble wird verwendet, um einen Constraint für eine Eigenschaft festzulegen, deren Wert eine Gleitkommazahl mit doppelter Genauigkeit ist. Sein Wert kann entweder eine Zahl oder ein Objekt mit den folgenden Eigenschaften sein:
max-
Eine Dezimalzahl, die den größten zulässigen Wert der betreffenden Eigenschaft angibt. Wenn der Wert nicht kleiner oder gleich diesem Wert sein kann, schlägt der Abgleich fehl.
min-
Eine Dezimalzahl, die den kleinsten zulässigen Wert der betreffenden Eigenschaft angibt. Wenn der Wert nicht größer oder gleich diesem Wert sein kann, schlägt der Abgleich fehl.
exact-
Eine Dezimalzahl, die einen bestimmten erforderlichen Wert angibt, den die Eigenschaft haben muss, um akzeptiert zu werden.
ideal-
Eine Dezimalzahl, die einen idealen Wert für die Eigenschaft angibt. Falls möglich, wird dieser Wert verwendet. Andernfalls verwendet der User Agent den nächstmöglichen Wert.
ConstrainDOMString
Der Constraint-Typ ConstrainDOMString wird verwendet, um einen Constraint für eine Eigenschaft festzulegen, deren Wert ein String ist. Sein Wert kann entweder ein String, ein Array von Strings oder ein Objekt mit den folgenden Eigenschaften sein:
exact-
Ein String oder ein Array von Strings, von denen einer dem Wert der Eigenschaft entsprechen muss. Wenn die Eigenschaft auf keinen der aufgeführten Werte gesetzt werden kann, schlägt der Abgleich fehl.
ideal-
Ein String oder ein Array von Strings, die ideale Werte für die Eigenschaft angeben. Falls möglich, wird einer der aufgeführten Werte verwendet. Andernfalls verwendet der User Agent den nächstmöglichen Wert.
ConstrainULong
Der Constraint-Typ ConstrainULong wird verwendet, um einen Constraint für eine Eigenschaft festzulegen, deren Wert eine Ganzzahl ist. Sein Wert kann entweder eine Zahl oder ein Objekt mit den folgenden Eigenschaften sein:
max-
Eine Ganzzahl, die den größten zulässigen Wert der betreffenden Eigenschaft angibt. Wenn der Wert nicht kleiner oder gleich diesem Wert sein kann, schlägt der Abgleich fehl.
min-
Eine Ganzzahl, die den kleinsten zulässigen Wert der betreffenden Eigenschaft angibt. Wenn der Wert nicht größer oder gleich diesem Wert sein kann, schlägt der Abgleich fehl.
exact-
Eine Ganzzahl, die einen bestimmten erforderlichen Wert angibt, den die Eigenschaft haben muss, um akzeptiert zu werden.
ideal-
Eine Ganzzahl, die einen idealen Wert für die Eigenschaft angibt. Falls möglich, wird dieser Wert verwendet. Andernfalls verwendet der User Agent den nächstmöglichen Wert.
Instanzeigenschaften
Einige, aber nicht unbedingt alle der folgenden Eigenschaften sind auf dem Objekt vorhanden. Das kann daran liegen, dass ein bestimmter Browser die Eigenschaft nicht unterstützt oder dass sie nicht anwendbar ist. Da RTP beispielsweise bei der Aushandlung einer WebRTC-Verbindung einige dieser Werte nicht bereitstellt, enthält ein Track, der mit einer RTCPeerConnection verknüpft ist, bestimmte Werte wie facingMode oder groupId nicht.
Instanzeigenschaften aller Medientracks
deviceId-
Ein
ConstrainDOMString-Objekt, das eine Geräte-ID oder ein Array von Geräte-IDs angibt, die zulässig und/oder erforderlich sind. groupId-
Ein
ConstrainDOMString-Objekt, das eine Gruppen-ID oder ein Array von Gruppen-IDs angibt, die zulässig und/oder erforderlich sind.
Instanzeigenschaften von Audiotracks
autoGainControl-
Ein
ConstrainBoolean-Objekt, das angibt, ob eine automatische Verstärkungsregelung bevorzugt und/oder erforderlich ist. channelCount-
Ein
ConstrainULong, das die zulässige und/oder erforderliche Anzahl von Kanälen oder einen entsprechenden Bereich angibt. echoCancellation-
Ein
ConstrainBooleanOrDOMString-Objekt, das angibt, ob eine Echounterdrückung bevorzugt und/oder erforderlich ist und, falls unterstützt, welcher Typ verwendet werden soll. latency-
Ein
ConstrainDouble, das die zulässige und/oder erforderliche Latenz oder einen entsprechenden Bereich angibt. noiseSuppression-
Ein
ConstrainBoolean, das angibt, ob eine Rauschunterdrückung bevorzugt und/oder erforderlich ist. sampleRate-
Ein
ConstrainULong, das die zulässige und/oder erforderliche Abtastrate oder einen entsprechenden Bereich angibt. sampleSize-
Ein
ConstrainULong, das die zulässige und/oder erforderliche Größe der Abtastwerte oder einen entsprechenden Bereich angibt. volume-
Ein
ConstrainDouble, das die zulässige und/oder erforderliche Lautstärke oder einen entsprechenden Bereich angibt.
Instanzeigenschaften von Bildtracks
whiteBalanceMode-
Ein
String, der"none","manual","single-shot"oder"continuous"angibt. exposureMode-
Ein
String, der"none","manual","single-shot"oder"continuous"angibt. focusMode-
Ein
String, der"none","manual","single-shot"oder"continuous"angibt. pointsOfInterest-
Die Pixelkoordinaten eines oder mehrerer relevanter Punkte auf dem Sensor. Der Wert ist entweder ein Objekt der Form { x:value, y:value } oder ein Array solcher Objekte, wobei value eine Ganzzahl mit doppelter Genauigkeit ist.
exposureCompensation-
Ein
ConstrainDouble(eine Ganzzahl mit doppelter Genauigkeit), das eine Anpassung der Blendenstufe um bis zu ±3 angibt. colorTemperature-
Ein
ConstrainDouble(eine Ganzzahl mit doppelter Genauigkeit), das eine gewünschte Farbtemperatur in Kelvin angibt. iso-
Ein
ConstrainDouble(eine Ganzzahl mit doppelter Genauigkeit), das eine gewünschte ISO-Einstellung angibt. brightness-
Ein
ConstrainDouble(eine Ganzzahl mit doppelter Genauigkeit), das eine gewünschte Helligkeitseinstellung angibt. contrast-
Ein
ConstrainDouble(eine Ganzzahl mit doppelter Genauigkeit), das den Grad des Unterschieds zwischen hell und dunkel angibt. saturation-
Ein
ConstrainDouble(eine Ganzzahl mit doppelter Genauigkeit), das den Grad der Farbintensität angibt. -
Ein
ConstrainDouble(eine Ganzzahl mit doppelter Genauigkeit), das die Intensität von Kanten angibt. focusDistance-
Ein
ConstrainDouble(eine Ganzzahl mit doppelter Genauigkeit), das den Abstand zu einem fokussierten Objekt angibt. zoom-
Ein
ConstrainDouble(eine Ganzzahl mit doppelter Genauigkeit), das die gewünschte Brennweite angibt. torch-
Ein boolescher Wert, der angibt, ob das Aufhelllicht dauerhaft eingeschaltet ist, also solange der Track aktiv ist.
Instanzeigenschaften von Videotracks
aspectRatio-
Ein
ConstrainDouble, das das zulässige und/oder erforderliche Seitenverhältnis des Videos oder einen entsprechenden Bereich angibt. facingMode-
Ein
ConstrainDOMString-Objekt, das eine Kameraausrichtung oder ein Array von Kameraausrichtungen angibt, die zulässig und/oder erforderlich sind. frameRate-
Ein
ConstrainDouble, das die zulässige und/oder erforderliche Bildrate oder einen entsprechenden Bereich angibt. height-
Ein
ConstrainULong, das die zulässige und/oder erforderliche Videohöhe oder einen entsprechenden Bereich angibt. width-
Ein
ConstrainULong, das die zulässige und/oder erforderliche Videobreite oder einen entsprechenden Bereich angibt. resizeMode-
Ein
ConstrainDOMString-Objekt, das einen Modus oder ein Array von Modi angibt, mit denen der User Agent die Auflösung und Bildrate eines Videotracks ableiten kann. Zulässige Werte sind:crop-and-scale-
Der User Agent kann die Rohausgabe der Hardware oder des Betriebssystems zuschneiden und ihre Auflösung oder Bildrate herunterskalieren, um andere Constraints zu erfüllen. Dieser Constraint ermöglicht es Entwicklern, ein herunterskaliertes Video zu erhalten, selbst wenn das durch ihre Constraints angegebene Format von der Hardware nicht nativ unterstützt wird.
none-
Der User Agent verwendet die Auflösung, die von der zugrunde liegenden Hardware, etwa einer Kamera oder ihrem Treiber, oder vom Betriebssystem bereitgestellt wird.
Wenn
resizeModenicht angegeben ist, wählt der Browser eine Auflösung anhand einer Fitness-Distanz, die die angegebenen Constraints und beide zulässigen Werte berücksichtigt.
Instanzeigenschaften von Tracks für die Bildschirmfreigabe
Diese Constraints gelten für die Eigenschaft video des Objekts, das an getDisplayMedia() übergeben wird, um einen Stream für die Bildschirmfreigabe zu erhalten.
displaySurface-
Ein
ConstrainDOMString, das angibt, welche Arten von Anzeigeflächen der Benutzer auswählen kann. Der Wert kann einer der folgenden Strings oder eine Liste davon sein, um mehrere Arten von Quellflächen zuzulassen: logicalSurface-
Ein
ConstrainBoolean-Wert, der einen einzelnen booleschen Wert oder mehrere solche Werte enthalten kann und angibt, ob der Benutzer Quellflächen auswählen darf, die nicht unmittelbar Anzeigebereichen entsprechen. Dazu können Hintergrundpuffer von Fenstern gehören, mit denen sich Fensterinhalte aufnehmen lassen, die von anderen Fenstern verdeckt werden. Ebenso können es Puffer mit größeren Dokumenten sein, durch die gescrollt werden muss, um ihren gesamten Inhalt im Fenster zu sehen. suppressLocalAudioPlayback-
Ein
ConstrainBoolean-Wert, der die gewünschten oder zwingenden Constraints für den Wert der konfigurierbaren EigenschaftsuppressLocalAudioPlaybackbeschreibt. Diese Eigenschaft steuert, ob Audio, das in einem Tab abgespielt wird, während der Aufnahme des Tabs weiterhin über die lokalen Lautsprecher des Benutzers ausgegeben wird. restrictOwnAudio-
Ein
ConstrainBoolean-Wert, der die gewünschten oder zwingenden Constraints für den Wert der konfigurierbaren EigenschaftrestrictOwnAudioangibt. Diese Eigenschaft steuert, ob Systemaudio, das vom aufnehmenden Tab stammt, aus der Bildschirmaufnahme herausgefiltert wird.
Spezifikationen
| Spezifikation |
|---|
| Media Capture and Streams> # dom-mediatrackconstraints> |
| Screen Capture> # extensions-to-mediatrackconstraintset> |
Siehe auch
- Media Capture and Streams API
- Funktionen, Constraints und Einstellungen
- Screen Capture API
- Verwendung der Screen Capture API
MediaStreamTrack.getConstraints()MediaStreamTrack.applyConstraints()MediaDevices.getUserMedia()MediaDevices.getDisplayMedia()MediaDevices.getSupportedConstraints()MediaStreamTrack.getSettings()