Miscellaneous
Capture Screen Contents
Get the user's media access status
This will return a Promise
which will resolve to not-determined
, granted
, denied
, restricted
or unknown
On Windows and macOS 10.14 Mojave or lower the response will always begranted
. macOS 10.15 Catalina or higher requires consent for screen
access.
To get that consent just run the code below, it will automatically ask for permission
Get the user's screen sources
Say we wanted to get a user's screens and windows
This will return an array of sources
Getting a source id
You'll need a way of choosing which screen/window to capture. Unlike in a browser, your Desktop app will need to implement its own UI for this.
For example if you wanted to reproduce a browsers selection feature you could loop through the sources and listen to click
events on each.
This will give you something like:
Get the stream to a source
After choosing a source we'll use its id
and navigator.mediaDevices.getUserMedia
to get the stream.
Play the stream
If you have a <video>
in your HTML
you can then use
navigator.mediaDevices.getDisplayMedia
Simple polyfill for We don't have direct access to getDisplayMedia
in ToDesktop Builder, but we can create a simple polyfill instead.
You can override navigator.mediaDevices.getDisplayMedia
like shown below:
API Reference
getCaptureSources
Exposes the destopCapturer.getSources
electron API: https://www.electronjs.org/docs/api/desktop-capturer
Accepts an options object:
types
String - The types of desktop sources to be captured, eitherscreen
orwindow
.thumbnailSize
-{ width: number, height: number }
(optional) - Default is150
x150
.fetchWindowIcons
Boolean (optional) - Default value isfalse
Returns a Promise
which resolves into an array of DesktopCapturerSource
objects each having:
id
String - The id of a window or screen that can be used as achromeMediaSourceId
latername
String - The name of the screen (Entire Screen
orScreen <index>
) or the window's titlethumbnail
String - A data Url of the imagedisplay_id
String - A unique identifier that will correspond to theid
propertyappIcon
String - A data Url of the app Icon ornull
if type is screen