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"を設定し、audioはfalseを設定しなければなりません。
全てのデスクトップから音とビデオをキャプチャーしたいなら、chromeMediaSource``"screen"、audio に true.を設定します。このメソッドを使うとき、chromeMediaSourceIdは指定できません。
メソッド
desktopCapturerモジュールは次のメソッドを持ちます。
desktopCapturer.getSources(options, callback)
optionsObjecttypesArray - キャプチャーされるデスクトップソースの種類一覧の文字列配列で、 提供される種類はscreenとwindowです。thumbnailSizeObject (オプション) - サムネイルがスケールすべきサイズの指定で、既定では{width: 150, height: 150}です。
callbackFunction
全てのデスクトップソールを取得するためのリクエストを開始し、リクエストが完了すると、callbackはcallback(error, sources) でコールされます。
sourcesは、Sourceオブジェクトの配列で、それぞれのSourceはキャプチャーしたスクリーンか、1つのウィンドウを示し、次のプロパティを持ちます。
idString - The id of the captured window or screen used innavigator.webkitGetUserMediaで使われるキャプチャーしたウィンドウか画面のidです。window:XXかscreen:XXのようなフォーマットで、XXはランダムに生成された数字です。nameString - キャプチャーする画面かウィンドウの説明名ソースが画面なら名前はEntire Screenで、Screen <index>はウィンドウで、名前はウィンドウのタイトルです。thumbnailNativeImage - サムネイル画像
Note: source.thumbnailのサイズはいつもoptionsのthumnbailSizeと同じ保証はありません。画面またはウィンドウのサイズに依存します。