--- title: MediaStream slug: Web/API/MediaStream tags: - API - Interface - Media Streams API - MediaStream - Reference - WebRTC - インターフェイス translation_of: Web/API/MediaStream ---
{{APIRef("Media Capture and Streams")}}

MediaStream インターフェイスは、メディアコンテンツのストリームを表します。ストリームは動画や音声など複数のトラックから成ります。それぞれのトラックは {{domxref("MediaStreamTrack")}} のインスタンスとして定義されます。 MediaStream オブジェクトを取得するには、コンストラクターを使用するか {{domxref("MediaDevices.getUserMedia()")}} を呼び出すかします。

ユーザーエージェントによってはこのインターフェイスを {{domxref("CanvasCaptureMediaStream")}} のようにサブクラス化して、より詳細な情報や機能を提供しています。

コンストラクター

{{domxref("MediaStream.MediaStream", "MediaStream()")}}
新しい MediaStream オブジェクトを作成して返します。空のストリーム、既存のストリームに基づいたストリーム、 ({{domxref("MediaStreamTrack")}} オブジェクトの配列として指定して) 特定のトラックのリストを含むストリームを作成することができます。

プロパティ

このインターフェイスは親である {{domxref("EventTarget")}} からプロパティを継承しています。

{{domxref("MediaStream.active")}} {{readonlyinline}}
論理値で、 trueMediaStream がアクティブな時、 false はそうでない場合です。
{{domxref("MediaStream.ended")}} {{readonlyInline}} {{obsolete_inline()}}
論理値で、ストリームの終わりに達した場合は true に設定されます。これは仕様書から削除されました。代わりに再生が終了したことを書くにしたい場合は、代わりに再生が終了したことを確認したいトラックの {{domxref("MediaStreamTrack.readyState")}} の値をチェックして確認してください。
{{domxref("MediaStream.id")}} {{readonlyInline}}
{{domxref("DOMString")}} で36文字のオブジェクトの汎用一意識別子 (UUID) を表す文字列が入ります。

イベントハンドラー

{{domxref("MediaStream.onaddtrack")}}
{{event("Event_handlers", "event handler")}} で、新しい {{domxref("MediaStreamTrack")}} オブジェクトが追加され、 {{domxref("MediaStream/addtrack_event", "addtrack")}} イベントが発生したときに実行される動作です。
{{domxref("MediaStream.onremovetrack")}}
{{event("Event_handlers", "event handler")}} で、 {{domxref("MediaStreamTrack")}} オブジェクトが削除され、 {{domxref("MediaStream/removetrack_event", "removetrack")}} イベントが発生したときに実行される動作です。

メソッド

このインターフェイスは親である {{domxref("EventTarget")}} からメソッドを継承しています。

{{domxref("MediaStream.addTrack()")}}
引数で指定された {{domxref("MediaStreamTrack")}} のコピーを格納します。トラックが既に MediaStream オブジェクトに追加されていた場合は、何も起こりません。
{{domxref("MediaStream.clone()")}}
MediaStream オブジェクトの複製を返します。ただし、複製は固有の {{domxref("MediaStream.id", "id")}} の値を持ちます。
{{domxref("MediaStream.getAudioTracks()")}}
{{domxref("MediaStreamTrack")}} オブジェクトのリストで、 MediaStream オブジェクトに格納されているものの中で kind 属性が audio に設定されているものを返します。順序は未定義であり、ブラウザーによって異なるばかりでなく、呼び出し毎に異なる可能性もあります。
{{domxref("MediaStream.getTrackById()")}}
引数 trackid で与えられた ID を持つトラックを返します。引数が与えられなかった場合や、その ID を持つトラックが存在しなかった場合は、 null を返します。複数のトラックが同じ ID を持っている場合は、最初の一つを返します。
{{domxref("MediaStream.getTracks()")}}
{{domxref("MediaStreamTrack")}} オブジェクトのリストで、 MediaStream オブジェクトに格納されているものをすべて、 kind 属性の値に関わらず返します。順序は未定義であり、ブラウザーによって異なるばかりでなく、呼び出し毎に異なる可能性もあります。
{{domxref("MediaStream.getVideoTracks()")}}
{{domxref("MediaStreamTrack")}} オブジェクトのリストで、 MediaStream オブジェクトに格納されているものの中で kind 属性が video に設定されているものを返します。順序は未定義であり、ブラウザーによって異なるばかりでなく、呼び出し毎に異なる可能性もあります。
{{domxref("MediaStream.removeTrack()")}}
引数として与えられた {{domxref("MediaStreamTrack")}} を除去します。もしトラックが MediaStream オブジェクトの一部として登録されていなかったり、トラックが終了状態(最後まで到達している場合)だと、INVALID_STATE_RAISE が発生します。

イベント

{{domxref("MediaStream/addtrack_event", "addtrack")}}
新しい {{domxref("MediaStreamTrack")}} オブジェクトが追加されたときに発生します。
{{domxref("MediaStream/onaddtrack", "onaddtrack")}} プロパティから利用することもできます。
{{domxref("MediaStream/removetrack_event", "removetrack")}}
{{domxref("MediaStreamTrack")}} オブジェクトが削除されたときに発生します。
{{domxref("MediaStream/onremovetrack", "onremovetrack")}} プロパティから利用することもできます。

仕様書

仕様書 状態 備考
{{SpecName('Media Capture', '#dom-mediastream', 'MediaStream')}} {{Spec2('Media Capture')}}

ブラウザーの互換性

{{Compat("api.MediaStream")}}

関連情報