node-webkit 屏幕截图功能

时间:2021-02-03 15:23:41

做 IM 屏幕截图是少不了的,之前 windows 版本是调用的 qq 数据法的截图功能,这个版本又再次尝试自己实现发现是可以的,getusermedia 的权限很高,代码如下

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 2         "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5     <title></title>
 6 </head>
 7 <body  >
 8 <video id='vd' onload="snap()"></video>
 9 <input type=button value=snap onclick="snap()" />
10 <script>
11 
12 function snap(){
13     var constraints =  {
14         video: {
15             mandatory: {
16             maxWidth: window.screen.width,
17             maxHeight: window.screen.height,
18             maxFrameRate: 30,
19             chromeMediaSource: 'screen'
20            }
21        }
22     }
23     // constraints =  {video: true, audio: true};
24     console.log(constraints);
25     navigator.webkitGetUserMedia(constraints, function(localSource){
26             console.log(localSource);
27             vd.src = webkitURL.createObjectURL(localSource);
28             vd.play();
29     },function(err){
30             console.log('error',err);
31     })
32 
33 }
34 
35 </script>
36 </body>
37 </html>

可以把屏幕全部捕获,别说截图 录屏都可以

PS 高版本的 nw ,package.json 需要 "chromium-args": "--enable-usermedia-screen-capturing"