关联来自electron.desktopCapturer.getSources()和electron.screen.getAllDisplays()的屏幕信息

时间:2017-09-18 21:28:34

标签: electron

我正在抓取有关用户屏幕分辨率和屏幕设置的一些信息。

electron.desktopCapturer.getSources()返回DesktopCapturerSource[],我用它来获取屏幕的缩略图。

electron.screen.getAllDisplays()返回Display[],我用它来获取屏幕尺寸,旋转等。

两者都是相同大小的数组,其中每个元素代表有关桌面屏幕的不同信息。它们有名称和ID,它们之间似乎都不匹配。我不确定我究竟能如何关联两个对象之间的数据,以保证我在谈论同一个屏幕。

1 个答案:

答案 0 :(得分:0)

您可以加入这两个调用,并将 id 返回的对象中的 screen.getAllDisplays()display_id 返回的对象中的 desktopCapturer.getSources() 对应起来。

请注意,这是在使用 Electron 12 的 MacOS Big Sur 上进行的尝试,结果可能与其他操作系统不同。

screen.getAllDisplays() 的示例输出:

[
  {
    id: 2077748985,
    bounds: { x: 0, y: 0, width: 1792, height: 1120 },
    workArea: { x: 0, y: 25, width: 1792, height: 1095 },
    accelerometerSupport: 'unknown',
    monochrome: false,
    colorDepth: 30,
    colorSpace: '{primaries:BT709, transfer:IEC61966_2_1_HDR, matrix:RGB, range:FULL}',
    depthPerComponent: 10,
    size: { width: 1792, height: 1120 },
    displayFrequency: 59,
    workAreaSize: { width: 1792, height: 1095 },
    scaleFactor: 2,
    rotation: 0,
    internal: true,
    touchSupport: 'unknown'
  }
]

desktopCapturer.getSources() 的示例输出:

[
    {
        "name": "Entire Screen",
        "id": "screen:2077748985:0",
        "thumbnail": {
            "isMacTemplateImage": false
        },
        "display_id": "2077748985",
        "appIcon": null
    },
    {
        "name": "Hello World!",
        "id": "window:33637:0",
        "thumbnail": {
            "isMacTemplateImage": false
        },
        "display_id": "",
        "appIcon": null
    },
    {
        "name": "Hello World!",
        "id": "window:33636:0",
        "thumbnail": {
            "isMacTemplateImage": false
        },
        "display_id": "",
        "appIcon": null
    },
    {
        "name": "Correlating the screen information from electron.desktopCapturer.getSources() and electron.screen.getAllDisplays() - Stack Overflow",
        "id": "window:3257:0",
        "thumbnail": {
            "isMacTemplateImage": false
        },
        "display_id": "",
        "appIcon": null
    },
    {
        "name": "electron-fun — Electron Helper (Renderer) ◂ npm TERM_PROGRAM=Apple_Terminal SHELL=/bin/zsh — 127×68",
        "id": "window:32731:0",
        "thumbnail": {
            "isMacTemplateImage": false
        },
        "display_id": "",
        "appIcon": null
    },
    {
        "name": "Calculator",
        "id": "window:32797:0",
        "thumbnail": {
            "isMacTemplateImage": false
        },
        "display_id": "",
        "appIcon": null
    }
]

请注意,id 是:2077748985,而 display_id 也是:2077748985。