MediaTrackConstraints: displaySurface-Eigenschaft

Das displaySurface-Eigenschaft des MediaTrackConstraints Wörterbuchs ist ein ConstrainDOMString, das den bevorzugten Wert für die displaySurface Fähigkeitseinschränkung beschreibt.

Diese wird von der Anwendung gesetzt, um dem Benutzeragenten die Art der Anzeigeoberfläche (window, browser oder monitor) zu identifizieren, die von der Anwendung bevorzugt wird. Sie hat keinen Einfluss darauf, was der Benutzer teilen kann, kann aber verwendet werden, um die Optionen in einer anderen Reihenfolge zu präsentieren.

Falls erforderlich, können Sie feststellen, ob diese Einschränkung unterstützt wird, indem Sie den Wert von MediaTrackSupportedConstraints.displaySurface überprüfen, wie er durch einen Aufruf von MediaDevices.getSupportedConstraints() zurückgegeben wird. In der Regel ist dies jedoch nicht notwendig, da Browser alle nicht bekannten Einschränkungen ignorieren werden.

Wert

Ein ConstrainDOMString, das den von der Anwendung bevorzugten Typ der Anzeigeoberfläche spezifiziert. Dieser Wert fügt keine neuen Anzeigequellen in der Benutzeroberfläche des Browsers hinzu oder entfernt diese, kann sie aber umordnen. Sie können diese Eigenschaft nicht verwenden, um den Benutzer auf einen Teil der drei Anzeigeoberflächenwerte window, browser und monitor zu beschränken — aber, wie Sie unten sehen werden, können Sie sehen, was gewählt wurde, und es ablehnen.

Siehe wie Einschränkungen definiert sind.

Hinweis: Sie können nicht monitorTypeSurfaces: "exclude" gleichzeitig mit displaySurface: "monitor" festlegen, da die beiden Einstellungen widersprüchlich sind. Der Versuch, dies zu tun, wird dazu führen, dass der zugehörige getDisplayMedia()-Aufruf mit einem TypeError fehlschlägt.

Hinweise zur Verwendung

Sie können die vom Benutzeragenten ausgewählte Einstellung überprüfen, nachdem das Anzeigemedium von getDisplayMedia() erstellt wurde, indem Sie getSettings() auf dem Video-MediaStreamTrack des Anzeigemediums aufrufen und dann den Wert des zurückgegebenen MediaTrackSettings-Objekts displaySurface überprüfen.

Zum Beispiel, wenn Ihre App es vorzieht, keinen Monitor zu teilen — was bedeutet, dass möglicherweise ein nicht-inhaltsbezogener Hintergrund aufgenommen wird — kann sie einen ähnlichen Code wie diesen verwenden:

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

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

Nach diesem Code ist mayHaveBackdrop true, wenn die im Stream enthaltene Anzeigeoberfläche vom Typ monitor ist. Späterer Code kann dieses Flag verwenden, um zu bestimmen, ob spezielle Verarbeitung durchgeführt werden soll, wie etwa das Entfernen oder Ersetzen des Hintergrunds oder das „Ausschneiden“ der einzelnen Anzeigebereiche aus den empfangenen Videobildern.

Beispiele

Hier sind einige Beispiel-Einschränkungsobjekte für getDisplayMedia(), die die displaySurface Eigenschaft 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.

Außerdem sehen Sie das Beispiel Einschränkungsübungen, das zeigt, wie Einschränkungen verwendet werden.

Spezifikationen

Specification
Screen Capture
# dom-mediatrackconstraintset-displaysurface

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch