--- 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 ---
{{APIRef("HTML Media Capture")}}

{{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 特有のメモ

Firefox 51 より前のバージョンでは、ソースがそれ自体が {{domxref("MediaStream")}} であるメディア要素では、captureStream() を使用できませんでした({{domxref("RTCPeerConnection")}} を介して受信されるストリームを表示している {{HTMLElement("video")}} 要素など)。 Firefox 51 以降、これは機能します。 これは、動画要素からストリームをキャプチャし、それを記録するために {{domxref("MediaRecorder")}} を使用できることを意味します。 詳細は {{bug(1259788)}} をご覧ください。

ただし、正当な理由で、Firefox では captureStream() の先頭に mozCaptureStream() が付いています。 現在の実装には、次のような注目に値するいくつかの奇妙な点があります。

関連情報