The desktopCapturer
module can be used to get available sources that can be used to be captured with getUserMedia
.
// In the renderer process.var desktopCapturer = require('electron').desktopCapturer;desktopCapturer.getSources({types: ['window', 'screen']}, function(error, sources) { if (error) throw error; for (var i = 0; i < sources.length; ++i) { if (sources[i].name == "Electron") { navigator.webkitGetUserMedia({ audio: false, video: { mandatory: { chromeMediaSource: 'desktop', chromeMediaSourceId: sources[i].id, minWidth: 1280, maxWidth: 1280, minHeight: 720, maxHeight: 720 } } }, gotStream, getUserMediaError); return; } }});function gotStream(stream) { document.querySelector('video').src = URL.createObjectURL(stream);}function getUserMediaError(e) { console.log('getUserMediaError');}
When creating a constraints object for the navigator.webkitGetUserMedia
call, if you are using a source fromdesktopCapturer
your chromeMediaSource
must be set to "desktop"
and your audio
must be set to false
.
If you wish to capture the audio and video from the entire desktop you can set chromeMediaSource
to "screen"
and audio
totrue
. When using this method you cannot specify a chromeMediaSourceId
.
The desktopCapturer
module has the following methods:
desktopCapturer.getSources(options, callback)
options
Objecttypes
Array - An array of String that lists the types of desktop sources to be captured, available types are screen
andwindow
.thumbnailSize
Object (optional) - The suggested size that thumbnail should be scaled, it is {width: 150, height: 150}
by default.callback
FunctionStarts a request to get all desktop sources, callback
will be called with callback(error, sources)
when the request is completed.
The sources
is an array of Source
objects, each Source
represents a captured screen or individual window, and has following properties:
id
String - The id of the captured window or screen used in navigator.webkitGetUserMedia
. The format looks likewindow:XX
or screen:XX
where XX
is a random generated number.name
String - The described name of the capturing screen or window. If the source is a screen, the name will be Entire Screen
or Screen <index>
; if it is a window, the name will be the window's title.thumbnail
NativeImage - A thumbnail image.Note: There is no guarantee that the size of source.thumbnail
is always the same as the thumnbailSize
in options
. It also depends on the scale of the screen or window.
联系客服