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');
}
方法
desktopCapturer.getSources(options, callback)
options
Objecttypes
Array - 一个 String 数组,列出了可以捕获的桌面资源类型, 可用类型为 screen
和 window
.thumbnailSize
Object (可选) - 建议缩略可被缩放的 size, 默认为 {width: 150, height: 150}
.
callback
Function
id
String - 在 navigator.webkitGetUserMedia
中使用的捕获窗口或屏幕的 id . 格式为 window:XX
祸screen:XX
,XX
是一个随机数.name
String - 捕获窗口或屏幕的描述名 . 如果资源为屏幕,名字为 Entire Screen
或 Screen <index>
; 如果资源为窗口, 名字为窗口的标题.thumbnail
NativeImage - 缩略图.
请发表评论