1. desktopCapturer

作者: Shmily落墨 | 来源:发表于2017-03-07 14:15 被阅读306次

原文: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

<h2 id="methods">方法</h2>

desktopCapturer模块有下面的方法:

<h3 id="desktopCapturer-getSources"><code>desktopCapturer.getSources(options, callback)</code></h3>

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

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

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

相关文章

  • 1. desktopCapturer

    原文:https://github.com/electron/electron/blob/master/docs/...

  • Electron调用原生模块-截图方案优化

    截图功能,起初很自然地使用了electron提供的API: desktopCapturer。但实际上,该API并不...

  • 1.

    午间的太阳晒得尤其刺热,菜市场上的楼房也显得闷热无比。 保罗的余光瞄见一个老妇,老妇登着载满废食的三轮车,充满...

  • 1.

    “好了,校会到此结束,请各班有序带回,开始班会。” 正在台下打盹的白子含被后面的同学叫醒,“子含,校会结束了。”...

  • 1.

    最随和、最友好、最善解人意的人,往往是最受伤、最抑郁的人。

  • 1.

    风决定要走 云怎么挽留 情缘似流水 覆水总难收

  • 1.

    清晨的第一缕阳光有点刺痛了屠然的眼睛,星期一再不起来就要迟到的闹铃成功的惊醒她,顶着宿醉的头痛微微坐起了身,...

  • 【1.】

    赵伊萱走在路上,她回想一下今天发生的事…… - 今天看见谭柯校草了 他在向我们班的班长表白了… 班长好像答应他了...

  • 1.

    九月份开学季,可这一年的我已经不是去年那个懵懂无知的大一萌新了,因为我变成大二小学姐啦!哈哈哈哈哈哈。 按照规定新...

  • 1.

    写给我最爱的人 我们认识快三个月了,认识第一天就决定在一起。这个决定都是我们最勇敢的一次决定,所以希望我们可以一直...

网友评论

    本文标题:1. desktopCapturer

    本文链接:https://www.haomeiwen.com/subject/iysmgttx.html