1. desktopCapturer

原文:https://github.com/electron/electron/blob/master/docs/api/desktop-capturer.md
译者:Lin

访问媒体资源的信息,可以被用来使用navigator.webkitGetUserMedia接口从桌面捕捉音频和视频。

进程:渲染进程

下面的例子演示如何从桌面上一个标题是Electron的窗口中捕捉视频:

// 渲染进程中。
const {desktopCapturer} = require('electron')

desktopCapturer.getSources({types: ['window', 'screen']}, (error, sources) => {
    if (error) throw error
    for (let 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
                    }
                }
            }, handleStream, handleError)
            return
        }
    }
})

function handleStream (stream) {
    document.querySelector('video').src = URL.createObjectURL(stream)
}

function handleError (e) {
    console.log(e)
}

使用navigator.webkitGetUserMedia传入desktopCapturer提供的资源来捕捉视频,则参数重必须包含chromeMediaSource: 'desktop',和audio: false

方法

desktopCapturer模块有下面的方法:

desktopCapturer.getSources(options, callback)

  • options Object类型
    • types String[]类型 - 一个字符串数组,列出了要捕捉的桌面资源的类型,可用类型是screenwindow
    • thumbnailSize Object类型(可选参数)- 建议媒体资源的缩略图应该缩放到的大小,默认是{width: 150, height: 150}
  • callback Function类型
    • error Error类型
    • sources DesktopCapturerSource[]类型

开始收集所有可用的桌面媒体资源,在收集完成后调用callback(error, sources)

sources是一个DesktopCapturerSource类型对象的数组,每一个DesktopCapturerSource表示可以被捕捉的一个屏幕或者一个窗口。

你可能感兴趣的:(1. desktopCapturer)