Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

MediaTrackConstraints: displaySurface-Eigenschaft

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Die Eigenschaft displaySurface des Dictionaries MediaTrackConstraints ist ein ConstrainDOMString, der den bevorzugten Wert für die einschränkbare Eigenschaft displaySurface beschreibt.

Die Anwendung legt diesen Wert fest, um dem User Agent mitzuteilen, welche Art von Anzeigefläche (window, browser oder monitor) sie bevorzugt. Dies hat keinen Einfluss darauf, was Benutzer freigeben können, kann aber dazu verwendet werden, die Optionen in einer anderen Reihenfolge anzuzeigen.

Falls nötig, können Sie prüfen, ob diese Einschränkung unterstützt wird, indem Sie den Wert von displaySurface untersuchen, den ein Aufruf von MediaDevices.getSupportedConstraints() zurückgibt. In der Regel ist das jedoch nicht nötig, da Browser unbekannte Einschränkungen ignorieren.

Wert

Ein ConstrainDOMString, der die von der Anwendung bevorzugte Art der Anzeigefläche angibt. Dieser Wert fügt der Benutzeroberfläche des Browsers keine Anzeigequellen hinzu und entfernt auch keine, kann aber deren Reihenfolge ändern. Sie können diese Eigenschaft nicht verwenden, um die Auswahl auf eine Teilmenge der drei Anzeigeflächenwerte window, browser und monitor zu beschränken. Wie unten beschrieben, können Sie jedoch feststellen, was ausgewählt wurde, und die Auswahl ablehnen.

Siehe wie Einschränkungen definiert werden.

Hinweis: Sie können monitorTypeSurfaces: "exclude" nicht gleichzeitig mit displaySurface: "monitor" festlegen, da sich die beiden Einstellungen widersprechen. Wenn Sie es dennoch versuchen, schlägt der zugehörige Aufruf von getDisplayMedia() mit einem TypeError fehl.

Verwendungshinweise

Nachdem getDisplayMedia() das Display-Medium erstellt hat, können Sie die vom User Agent ausgewählte Einstellung prüfen: Rufen Sie dazu getSettings() für den Video-MediaStreamTrack des Display-Mediums auf und prüfen Sie anschließend den Wert der Eigenschaft displaySurface im zurückgegebenen MediaTrackSettings-Objekt.

Wenn Ihre Anwendung beispielsweise die Freigabe eines Monitors vermeiden möchte, weil dabei möglicherweise ein Hintergrund erfasst wird, der nicht zum eigentlichen Inhalt gehört, kann sie ähnlichen Code wie diesen verwenden:

js
let mayHaveBackdropFlag = false;
let displaySurface = displayStream
  .getVideoTracks()[0]
  .getSettings().displaySurface;

if (displaySurface === "monitor") {
  mayHaveBackdropFlag = true;
}

Nach Ausführung dieses Codes ist mayHaveBackdrop true, wenn die im Stream enthaltene Anzeigefläche vom Typ monitor ist. Nachfolgender Code kann anhand dieses Flags entscheiden, ob eine besondere Verarbeitung erforderlich ist, etwa um den Hintergrund zu entfernen oder zu ersetzen oder einzelne Anzeigebereiche aus den empfangenen Videoframes „auszuschneiden“.

Beispiele

Hier sind einige Beispielobjekte mit Einschränkungen für getDisplayMedia(), die die Eigenschaft displaySurface verwenden.

js
dsConstraints = { displaySurface: "window" }; // 'browser' and 'monitor' are also possible
applyConstraints(dsConstraints);
// The user still may choose to share the monitor or the browser,
// but we indicated that a window is preferred.

Sehen Sie sich außerdem das Beispiel zum Ausprobieren von Einschränkungen an. Es zeigt, wie Einschränkungen verwendet werden.

Spezifikationen

Spezifikation
Screen Capture
# dom-mediatrackconstraintset-displaysurface

Browser-Kompatibilität

Siehe auch