--- title: HTMLMediaElement.captureStream() slug: Web/API/HTMLMediaElement/captureStream tags: - API - Audio - HTML DOM - HTMLMediaElement - Media - Media Capture DOM Elements - Method - Reference - Video - captureStream translation_of: Web/API/HTMLMediaElement/captureStream ---
{{domxref("HTMLMediaElement")}} インターフェイスの captureStream() プロパティは、メディア要素でレンダリングされているコンテンツのリアルタイムキャプチャをストリーミングしている {{domxref('MediaStream')}} オブジェクトを返します。
これは、例えば WebRTC の {{domxref("RTCPeerConnection")}} のソースとして使用できます。
var mediaStream = mediaElement.captureStream()
無し。
他のメディア処理コードによる音声データおよび/または動画データのソースとして、または WebRTC のソースとして使用できる {{domxref('MediaStream')}} オブジェクト。
この例では、イベントハンドラが確立されているため、ボタンをクリックすると、ID が "playback" のメディア要素のコンテンツの {{domxref("MediaStream")}} へのキャプチャを開始します。 これにより、WebRTC を介したストリーミングのソースなど、他の目的にストリームを使用して、動画通話中に録画済みの動画を他の人と共有できるようになります。
document.querySelector('.playAndRecord').addEventListener('click', function() {
var playbackElement = document.getElementById("playback");
var captureStream = playbackElement.captureStream();
playbackElement.play();
});
より長くより複雑な例と説明については、メディア要素の記録を参照してください。
| 仕様 | 状態 | コメント |
|---|---|---|
| {{SpecName('Media Capture DOM Elements','#widl-HTMLMediaElement-captureStream-MediaStream','captureStream()')}} | {{Spec2('Media Capture DOM Elements')}} | 初期定義 |
{{Compat("api.HTMLMediaElement.captureStream")}}
Firefox 51 より前のバージョンでは、ソースがそれ自体が {{domxref("MediaStream")}} であるメディア要素では、captureStream() を使用できませんでした({{domxref("RTCPeerConnection")}} を介して受信されるストリームを表示している {{HTMLElement("video")}} 要素など)。 Firefox 51 以降、これは機能します。 これは、動画要素からストリームをキャプチャし、それを記録するために {{domxref("MediaRecorder")}} を使用できることを意味します。 詳細は {{bug(1259788)}} をご覧ください。
ただし、正当な理由で、Firefox では captureStream() の先頭に mozCaptureStream() が付いています。 現在の実装には、次のような注目に値するいくつかの奇妙な点があります。
MediaStream ではない場合、このメソッドからの出力は仕様と互換性がありません。 そして、キャプチャの開始後にソースを変更した場合、その非互換性のために出力キャプチャストリームは新しいソースデータを受け入れることができません。 したがって、新しいソースの MediaStream からの {{domxref("MediaStreamTrack")}} はキャプチャしたストリームに追加されず、更新されたソースをキャプチャしない出力になります。MediaStream に戻すと、トラックをストリームに戻して追加し、期待どおりに機能します。MediaStream のソースを使用して要素に対して mozCaptureMediaStream() を呼び出すと、要素が MediaStream を再生している間はトラックのみを含むストリームを返します。mozCaptureMediaStream() を呼び出すと、その互換モードは最初に追加されたソースに基づきます。 例えば、MediaStream の場合、キャプチャストリームはそれ以降 MediaStream のソースでのみ機能します。MediaStream 以外のソースのサポートが仕様に達した時点で、接頭辞なしのメソッドの場合、この特別なふるまいは取り除かれます。 詳細は {{bug(1259788, "bug", 160)}} をご覧ください。