CaptureController: setFocusBehavior()-Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die setFocusBehavior()-Methode des CaptureController-Interfaces steuert, ob der erfasste Tab oder das Fenster fokussiert wird, wenn ein zugehöriges MediaDevices.getDisplayMedia() Promise erfüllt wird, oder ob der Fokus bei dem Tab bleibt, der die aufzeichnende App enthält.

Sie können dieses Verhalten mehrfach vor dem Aufruf von MediaDevices.getDisplayMedia() festlegen oder einmal unmittelbar nachdem dessen Promise erfüllt wird. Danach wird das Fokusverhalten als finalisiert betrachtet und kann nicht mehr geändert werden.

Syntax

js
setFocusBehavior(focusBehavior)

Parameter

focusBehavior

Ein enumerierter Wert, der beschreibt, ob der Benutzeragent den Fokus auf die erfasste Anzeigefläche übertragen oder die aufzeichnende App fokussiert lassen sollte. Mögliche Werte sind focus-captured-surface (Fokus übertragen) und no-focus-change (Fokus auf der aufzeichnenden App beibehalten).

Rückgabewert

Keiner (undefined).

Ausnahmen

InvalidStateError DOMException

Wird geworfen, wenn:

  • Der Aufnahmestrom gestoppt wurde.
  • Der Benutzer gewählt hat, einen Bildschirm (displaySurface Typ monitor) anstelle eines browser-Tabs oder window freizugeben — Sie können keinen Monitor fokussieren. In diesem Fall wird die Ausnahme nach der Erfüllung des MediaDevices.getDisplayMedia() Promise geworfen.
  • Genügend Zeit nach der Erfüllung des MediaDevices.getDisplayMedia() Promise vergangen ist, sodass das Fokusverhalten finalisiert wurde.

Beispiele

js
// Create a new CaptureController instance
const controller = new CaptureController();

// Prompt the user to share a tab, window, or screen.
const stream = await navigator.mediaDevices.getDisplayMedia({ controller });

// Query the displaySurface value of the captured video track
const [track] = stream.getVideoTracks();
const displaySurface = track.getSettings().displaySurface;

if (displaySurface == "browser") {
  // Focus the captured tab.
  controller.setFocusBehavior("focus-captured-surface");
} else if (displaySurface == "window") {
  // Do not move focus to the captured window.
  // Keep the capturing page focused.
  controller.setFocusBehavior("no-focus-change");
}

Spezifikationen

Specification
Screen Capture
# dom-capturecontroller-setfocusbehavior

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch