Screen capture
実験的機能: これは実験的な技術です
本番環境で使用する前に、ブラウザーの互換性一覧表を注意深く確認してください。
セキュアコンテキスト: この機能は、一部またはすべての対応ブラウザーにおいて、セキュアコンテキスト (HTTPS) でのみ利用可能です。
`CaptureController` インターフェイスは、キャプチャされた表示サーフェス (`MediaDevices.getDisplayMedia()` を介してキャプチャされたもの) をさらに操作するために使用できるメソッドを提供します。
`CaptureController` オブジェクトは、`getDisplayMedia()` の呼び出しにオプションオブジェクトの `controller` プロパティの値として渡すことで、キャプチャされた表示サーフェスに関連付けられます。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 109 | 109 | | | | | |
| CaptureController コンストラクターは、新しい CaptureController オブジェクト インスタンスを作成します。 | 109 | 109 | | | | |
setFocusBehavior 実験的 CaptureController インターフェイスの setFocusBehavior() メソッドは、関連付けられた MediaDevices.getDisplayMedia() Promise が満たされたときにキャプチャされたタブまたはウィンドウにフォーカスするかどうか、またはキャプチャ アプリを含むタブにフォーカスを維持するかどうかを制御します。 | 109 | 109 | | | | |
| getDisplayMedia() は MediaDevices インターフェイスのメソッドで、ディスプレイまたはその一部(ウィンドウなど)の内容を MediaStream としてキャプチャする許可を選択し、許可するようユーザーに促します。 | 72 | 79 | 66 | 13 | | |
| 音声の共有が必要なプロジェクトを開始する前に、getDisplayMedia()のブラウザ互換性を確認し、互換性を希望するブラウザがキャプチャした画面ストリームで音声をサポートしているかどうかを確認してください。 | 74 | 79 | | | | |
getDisplayMedia (controller option) 実験的 controller`オプション | 109 | 109 | | | | |
getDisplayMedia (monitorTypeSurfaces option) 実験的 monitorTypeSurfaces`オプション | 119 | 119 | | | | |
getDisplayMedia (selfBrowserSurface option) 実験的 selfBrowserSurface`オプション | 112 | 112 | | | | |
getDisplayMedia (surfaceSwitching option) 実験的 surfaceSwitching`オプション | 107 | 107 | | | | |
getDisplayMedia (systemAudio option) 実験的 systemAudio`オプション | 105 | 105 | | | | |
| MediaTrackConstraints辞書のdisplaySurfaceプロパティは、MediaTrackSettings.displaySurface制約可能プロパティの優先値を記述したConstrainDOMStringです。 | 107 | 107 | | 11.1 | 107 | 11.3 |
| MediaTrackConstraints辞書のlogicalSurfaceプロパティは、MediaTrackSettings.logicalSurface制約可能プロパティの値に要求された、または必須の制約を記述するConstrainDOMStringである。 | | | | 11.1 | | 11.3 |
| MediaTrackConstraints ディクショナリの [suppressLocalAudioPlayback] プロパティは、MediaTrackSettings.suppressLocalAudioPlayback 制約可能プロパティの値に適用される要求された制約または必須の制約を記述する ConstrainBoolean です。 このプロパティは、タブで再生されているオーディオをユーザーのローカル環境から引き続き再生するかどうかを制御します。 | 109 | 109 | | | 109 | |
| その他 | ||||||
html.elements.iframe.allow.display-capture | 94 | 94 | 74 | 13 | 94 | |
| HTTP の Permissions-Policy ヘッダーにおける display-capture ディレクティブは、現在の文書が画面キャプチャ API、すなわち MediaDevices.getDisplayMedia を使用して画面の内容をキャプチャすることを許可するかどうかを制御します。 | 94 | 94 | | | 94 | |
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (79)
- MediaDevices`の代わりに`Navigator`のメンバとして利用できる。
- このバージョンで機能が削除されました (66)
- Firefox 33 以降では、`mediaSource` と呼ばれる `video` 制約を使用して、`getUserMedia()` を使用して画面データをキャプチャできます。52 以前は、クライアントが設定可能な許可サイトのリストに依存していました。
- Chrome Android 72から88まで、このメソッドは公開されていたが、常に`NotAllowedError`で失敗していた。バグ 40418135 を参照。
- WindowsとChromeOSでは、画面全体を共有する場合、システム全体の音声をキャプチャできます。LinuxとmacOSでは、タブの音声のみをキャプチャできます。
- WindowsとChromeOSでは、画面全体を共有する場合、システム全体の音声をキャプチャできます。LinuxとmacOSでは、タブの音声のみをキャプチャできます。
- デフォルト値 = `include`
- デフォルト値 = `include`
- デフォルト値 = `exclude`
- デフォルト値 = `include`
- このバージョンで機能が削除されました (111)
- デフォルト値 = `exclude`
- デフォルト値 = `include`
- このバージョンで機能が削除されました (111)
- デフォルト値 = `exclude`
- デフォルト値 = `exclude`
- デフォルト値 = `include`
- デフォルト値 = `include`
基本構文
const stream = await navigator.mediaDevices.getDisplayMedia({
video: { displaySurface: 'monitor' },
audio: true
});
const video = document.querySelector('video');
video.srcObject = stream; 実務での使いどころ
-
Screen capture の活用
実験的機能: これは実験的な技術です
注意点
- 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。
アクセシビリティ
- スクリーンリーダーでの読み上げを確認すること。