您的位置:58编程 > electron capture Electron desktopCapturer 模块

electron capture Electron desktopCapturer 模块

2023-05-24 17:33 Electron中文文档

electron capture Electron desktopCapturer 模块

electron capture Electron desktopCapturer 模块

electron capture

desktopCapturer 模块可用来获取可用资源,这个资源可通过 getUserMedia 捕获得到.

// 在渲染进程中.
var desktopCapturer = require("electron").desktopCapturer;

desktopCapturer.getSources({types: ["window", "screen"]}, function(error, sources) {
  if (error) throw error;
  for (var 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
          }
        }
      }, gotStream, getUserMediaError);
      return;
    }
  }
});

function gotStream(stream) {
  document.querySelector("video").src = URL.createObjectURL(stream);
}

function getUserMediaError(e) {
  console.log("getUserMediaError");
}

当调用 navigator.webkitGetUserMedia 时创建一个约束对象,如果使用 desktopCapturer 的资源,必须设置 chromeMediaSource  "desktop" ,并且 audio  false.

如果你想捕获整个桌面的 audio 和 video,你可以设置 chromeMediaSource  "screen" ,和 audio  true. 当使用这个方法的时候,不可以指定一个 chromeMediaSourceId.

方法

desktopCapturer 模块有如下方法:

desktopCapturer.getSources(options, callback)

  • options Object
    • types Array - 一个 String 数组,列出了可以捕获的桌面资源类型, 可用类型为 screen  window.
    • thumbnailSize Object (可选) - 建议缩略可被缩放的 size, 默认为 {width: 150, height: 150}.
  • callback Function

发起一个请求,获取所有桌面资源,当请求完成的时候使用 callback(error, sources) 调用 callback .

sources 是一个 Source 对象数组, 每个 Source 表示了一个捕获的屏幕或单独窗口,并且有如下属性 :

  • id String - 在 navigator.webkitGetUserMedia 中使用的捕获窗口或屏幕的 id . 格式为 window:XX screen:XXXX 是一个随机数.
  • name String - 捕获窗口或屏幕的描述名 . 如果资源为屏幕,名字为 Entire Screen  Screen <index>; 如果资源为窗口, 名字为窗口的标题.
  • thumbnail NativeImage - 缩略图.

注意: 不能保证 source.thumbnail 的 size 和 options 中的 thumnbailSize 一直一致. 它也取决于屏幕或窗口的缩放比例.

阅读全文
以上是58编程为你收集整理的electron capture Electron desktopCapturer 模块全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58编程 58biancheng.com 版权所有 联系我们
桂ICP备12005667号-32 Powered by CMS