CaptureController
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The CaptureController
interface provides methods that can be used to further manipulate a capture session separate from its initiation via MediaDevices.getDisplayMedia()
.
A CaptureController
object is associated with a capture session by passing it into a getDisplayMedia()
call as the value of the options object's controller
property.
Constructor
CaptureController()
Experimental-
Creates a new
CaptureController
object instance.
Instance methods
setFocusBehavior()
Experimental-
Controls whether the captured tab or window will be focused or whether the focus will remain with the tab containing the capturing app.
Examples
// 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");
}
Specifications
Specification |
---|
Screen Capture # dom-capturecontroller |
Browser compatibility
BCD tables only load in the browser