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 MediaTrackConstraints-Dictionaries 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. Der Wert beeinflusst nicht, was Benutzer freigeben können, kann aber verwendet werden, um die Optionen in einer anderen Reihenfolge anzuzeigen.
Falls erforderlich, können Sie prüfen, ob diese Einschränkung unterstützt wird, indem Sie den Wert von displaySurface prüfen, den ein Aufruf von MediaDevices.getSupportedConstraints() zurückgibt. Normalerweise ist das jedoch nicht nötig, da Browser ihnen 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 ihre Reihenfolge ändern. Sie können diese Eigenschaft nicht verwenden, um die Auswahl auf eine Teilmenge der drei displaySurface-Werte 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 dies versuchen, schlägt der zugehörige Aufruf von getDisplayMedia() mit einem TypeError fehl.
Hinweise zur Verwendung
Nachdem die Bildschirmmedien durch getDisplayMedia() erstellt wurden, können Sie die vom User Agent gewählte Einstellung prüfen. Rufen Sie dazu getSettings() für den Video-MediaStreamTrack der Bildschirmmedien auf und prüfen Sie anschließend den Wert der Eigenschaft displaySurface.
Wenn Ihre Anwendung beispielsweise die Freigabe eines Monitors vermeiden möchte – weil dabei möglicherweise auch ein Hintergrund erfasst wird, der nicht zum Inhalt gehört –, kann sie ähnlichen Code wie diesen verwenden:
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. Späterer Code kann dieses Flag verwenden, um zu entscheiden, ob eine spezielle Verarbeitung erforderlich ist, etwa um den Hintergrund zu entfernen oder zu ersetzen oder die einzelnen Anzeigebereiche aus den empfangenen Videoframes „auszuschneiden“.
Beispiele
Hier sind einige Beispiele für Einschränkungsobjekte für getDisplayMedia(), die die Eigenschaft displaySurface 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.
Sehen Sie sich außerdem das Beispiel zum Testen von Einschränkungen an, das zeigt, wie Einschränkungen verwendet werden.
Spezifikationen
| Spezifikation |
|---|
| Screen Capture> # dom-mediatrackconstraintset-displaysurface> |