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 vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die setFocusBehavior()
-Methode der CaptureController
-Schnittstelle steuert, ob die aufgenommene Registerkarte oder das Fenster fokussiert wird, wenn eine zugehörige MediaDevices.getDisplayMedia()
Promise
erfüllt wird, oder ob der Fokus bei der Registerkarte bleibt, die die aufnehmende Anwendung enthält.
Sie können dieses Verhalten mehrmals einstellen, bevor der MediaDevices.getDisplayMedia()
-Aufruf erfolgt, oder einmal unmittelbar nachdem dessen Promise
aufgelöst wird. Danach gilt das Fokusverhalten als finalisiert und kann nicht mehr geändert werden.
Syntax
setFocusBehavior(focusBehavior)
Parameter
focusBehavior
-
Ein enumerierter Wert, der beschreibt, ob der Benutzeragent den Fokus auf die aufgenommene Anzeigeoberfläche übertragen soll oder die aufnehmende Anwendung fokussiert bleiben soll. Mögliche Werte sind
focus-captured-surface
(Fokus übertragen) undno-focus-change
(Fokus auf die aufnehmende Anwendung beibehalten).
Rückgabewert
Keiner (undefined
).
Ausnahmen
InvalidStateError
DOMException
-
Wird ausgelöst, wenn:
- Der Aufnahmestrom gestoppt wurde.
- Der Benutzer sich dafür entschieden hat, einen Bildschirm (
displaySurface
Typmonitor
) anstelle einerbrowser
-Registerkarte oder eineswindow
zu teilen – ein Monitor kann nicht fokussiert werden. In diesem Fall wird die Ausnahme ausgelöst, nachdem dasPromise
vonMediaDevices.getDisplayMedia()
aufgelöst wurde. - Genügend Zeit nach dem Erfüllen des
Promise
vonMediaDevices.getDisplayMedia()
vergangen ist, sodass das Fokusverhalten finalisiert wurde.
Beispiele
// 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 |