- desktopCapturer
- 方法
- desktopCapturer.getSources(options, callback)
- desktopCapturer.getSources(options, callback)
- 方法
desktopCapturer
通过[navigator.mediaDevices.getUserMedia] API ,可以访问那些用于从桌面上捕获音频和视频的媒体源信息。
进程: Renderer
下面的示例演示如何从标题为 Electron 的桌面窗口捕获视频:
// In the renderer process.const { desktopCapturer } = require('electron')desktopCapturer.getSources({ types: ['window', 'screen'] }, (error, sources) => {if (error) throw errorfor (let i = 0; i < sources.length; ++i) {if (sources[i].name === 'Electron') {navigator.mediaDevices.getUserMedia({audio: false,video: {mandatory: {chromeMediaSource: 'desktop',chromeMediaSourceId: sources[i].id,minWidth: 1280,maxWidth: 1280,minHeight: 720,maxHeight: 720}}}).then((stream) => handleStream(stream)).catch((e) => handleError(e))return}}})function handleStream (stream) {const video = document.querySelector('video')video.srcObject = streamvideo.onloadedmetadata = (e) => video.play()}function handleError (e) {console.log(e)}
若要从 desktopCapturer 提供的源捕获视频, 则传递给 [navigator.mediaDevices.getUserMedia] 的约束必须包括 chromeMediaSource: "desktop" 和 audio: false。
要从整个桌面同时捕获音频和视频, 传递给 [navigator.mediaDevices.getUserMedia] 的约束必须包括 chromeMediaSource: ' desktop ', 同时用于 audio 和 video, 但不应包括 chromeMediaSourceId 约束。
const constraints = {audio: {mandatory: {chromeMediaSource: 'desktop'}},video: {mandatory: {chromeMediaSource: 'desktop'}}}
方法
desktopCapturer 模块有以下方法:
desktopCapturer.getSources(options, callback)
options对象typesString[]-列出要捕获的桌面源类型的字符串数组, 可用类型为screen和window。thumbnailSizeSize (可选)-媒体源缩略图应缩放到的大小。默认值为150x150。
callbackFunction - 回调函数errorErrorsourcesDesktopCapturerSource[]
开始收集所有有效桌面媒体源的信息,当结束时将调用callback(error, sources)
sources 是 DesktopCapturerSource对象数组, 每个DesktopCapturerSource 代表一个屏幕或一个可捕获的独立窗口。
