desktopCapturer

desktopCapturerモジュールはgetUserMediaでキャプチャーするのに使える利用可能なソースを取得するのに使われます。

// In the renderer process.
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"を設定し、audiofalseを設定しなければなりません。

全てのデスクトップから音とビデオをキャプチャーしたいなら、chromeMediaSource``"screen"audiotrue.を設定します。このメソッドを使うとき、chromeMediaSourceIdは指定できません。

メソッド

desktopCapturerモジュールは次のメソッドを持ちます。

desktopCapturer.getSources(options, callback)

  • options Object
    • types Array - キャプチャーされるデスクトップソースの種類一覧の文字列配列で、 提供される種類はscreenwindowです。
    • thumbnailSize Object (オプション) - サムネイルがスケールすべきサイズの指定で、既定では{width: 150, height: 150} です。
  • callback Function

全てのデスクトップソールを取得するためのリクエストを開始し、リクエストが完了すると、callbackcallback(error, sources) でコールされます。

sourcesは、Sourceオブジェクトの配列で、それぞれのSourceはキャプチャーしたスクリーンか、1つのウィンドウを示し、次のプロパティを持ちます。

  • id String - The id of the captured window or screen used in navigator.webkitGetUserMediaで使われるキャプチャーしたウィンドウか画面のidです。window:XXscreen:XXのようなフォーマットで、XXはランダムに生成された数字です。
  • name String - キャプチャーする画面かウィンドウの説明名ソースが画面なら名前はEntire Screenで、Screen <index>はウィンドウで、名前はウィンドウのタイトルです。
  • thumbnail NativeImage - サムネイル画像

Note: source.thumbnailのサイズはいつもoptionsthumnbailSizeと同じ保証はありません。画面またはウィンドウのサイズに依存します。