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:
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.
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