我正在抓取有关用户屏幕分辨率和屏幕设置的一些信息。
electron.desktopCapturer.getSources()
返回DesktopCapturerSource[],我用它来获取屏幕的缩略图。
electron.screen.getAllDisplays()
返回Display[],我用它来获取屏幕尺寸,旋转等。
两者都是相同大小的数组,其中每个元素代表有关桌面屏幕的不同信息。它们有名称和ID,它们之间似乎都不匹配。我不确定我究竟能如何关联两个对象之间的数据,以保证我在谈论同一个屏幕。
答案 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。