MediaStream

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

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

コンストラクター

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

プロパティ

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

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

イベントハンドラー

MediaStream.onaddtrack
EventHandler で、新しい MediaStreamTrack オブジェクトが追加され、 addtrack イベントが発生したときに実行される動作です。
MediaStream.onremovetrack
EventHandler で、 MediaStreamTrack オブジェクトが削除され、 removetrack イベントが発生したときに実行される動作です。

メソッド

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

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

イベント

addtrack
新しい MediaStreamTrack オブジェクトが追加されたときに発生します。
onaddtrack プロパティから利用することもできます。
removetrack
MediaStreamTrack オブジェクトが削除されたときに発生します。
onremovetrack プロパティから利用することもできます。

仕様書

仕様書 状態 備考
Media Capture and Streams
MediaStream の定義
勧告候補

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
MediaStreamChrome 完全対応 55
完全対応 55
完全対応 21
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 15IE 未対応 なしOpera 完全対応 42
完全対応 42
完全対応 15
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Safari 完全対応 11WebView Android 完全対応 55
完全対応 55
完全対応 ≤37
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 55
完全対応 55
完全対応 25
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Firefox Android 完全対応 15Opera Android 完全対応 42
完全対応 42
完全対応 14
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Safari iOS 完全対応 11Samsung Internet Android 完全対応 6.0
完全対応 6.0
完全対応 1.5
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
MediaStream() constructorChrome 完全対応 21Edge 完全対応 ≤18Firefox 完全対応 44IE 未対応 なしOpera 完全対応 42Safari 未対応 なしWebView Android 完全対応 37Chrome Android 完全対応 25Firefox Android 完全対応 42Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 完全対応 6.0
activeChrome 完全対応 45Edge 完全対応 12Firefox 完全対応 52IE 未対応 なしOpera 未対応 なしSafari 完全対応 ありWebView Android 完全対応 45Chrome Android 完全対応 45Firefox Android 完全対応 52Opera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 5.0
active eventChrome 完全対応 45Edge 完全対応 ≤79Firefox ? IE 未対応 なしOpera ? Safari ? WebView Android 完全対応 45Chrome Android 完全対応 45Firefox Android ? Opera Android 未対応 なしSafari iOS ? Samsung Internet Android 完全対応 5.0
addTrackChrome 完全対応 26Edge 完全対応 12Firefox 完全対応 44IE 未対応 なしOpera 未対応 なしSafari 完全対応 ありWebView Android 完全対応 37Chrome Android 完全対応 26Firefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.5
addtrack eventChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 50IE 未対応 なしOpera 未対応 なしSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 50Opera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
cloneChrome 完全対応 45Edge 完全対応 12Firefox 完全対応 48IE 未対応 なしOpera 未対応 なしSafari 完全対応 ありWebView Android 完全対応 45Chrome Android 完全対応 45Firefox Android 完全対応 48Opera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 5.0
ended
非推奨
Chrome 未対応 ? — 54
補足
未対応 ? — 54
補足
補足 Deprecated in Chrome 52.
Edge ? Firefox 未対応 なしIE 未対応 なしOpera 未対応 ? — 39Safari ? WebView Android 未対応 ? — 54
補足
未対応 ? — 54
補足
補足 Deprecated in Chrome 52.
Chrome Android 未対応 ? — 54
補足
未対応 ? — 54
補足
補足 Deprecated in Chrome 52.
Firefox Android 未対応 なしOpera Android 未対応 ? — 41Safari iOS ? Samsung Internet Android 未対応 ? — 6.0
補足
未対応 ? — 6.0
補足
補足 Deprecated in Samsung Internet 6.0.
getAudioTracksChrome 完全対応 26Edge 完全対応 12Firefox 完全対応 22
補足
完全対応 22
補足
補足 Prior to Firefox 64, this method returned an array of AudioStreamTrack objects. However, MediaStreamTrack has now subsumed that interface's functionality.
IE 未対応 なしOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 37Chrome Android 完全対応 26Firefox Android 完全対応 22
補足
完全対応 22
補足
補足 Prior to Firefox 64, this method returned an array of AudioStreamTrack objects. However, MediaStreamTrack has now subsumed that interface's functionality.
Opera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.5
getTrackByIdChrome 完全対応 26Edge 完全対応 12Firefox 完全対応 49IE 未対応 なしOpera 未対応 なしSafari 完全対応 ありWebView Android 完全対応 37Chrome Android 完全対応 26Firefox Android 完全対応 49Opera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.5
getTracks
実験的
Chrome 完全対応 45Edge 完全対応 12Firefox 完全対応 ありIE 未対応 なしOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 45Chrome Android 完全対応 45Firefox Android 完全対応 ありOpera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 5.0
getVideoTracks
実験的
Chrome 完全対応 26Edge 完全対応 12Firefox 完全対応 22
補足
完全対応 22
補足
補足 Prior to Firefox 64, this method returned an array of VideoStreamTrack objects. However, MediaStreamTrack has now subsumed that interface's functionality.
IE 未対応 なしOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 37Chrome Android 完全対応 26Firefox Android 完全対応 22
補足
完全対応 22
補足
補足 Prior to Firefox 64, this method returned an array of VideoStreamTrack objects. However, MediaStreamTrack has now subsumed that interface's functionality.
Opera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.5
idChrome 未対応 ? — 54Edge 未対応 12 — 79Firefox 完全対応 41IE 未対応 なしOpera 未対応 ? — 39Safari 完全対応 ありWebView Android 未対応 ? — 54Chrome Android 未対応 ? — 54Firefox Android 完全対応 41Opera Android 未対応 ? — 41Safari iOS 完全対応 ありSamsung Internet Android 未対応 ? — 6.0
inactive eventChrome 完全対応 45Edge 完全対応 ≤79Firefox ? IE 未対応 なしOpera ? Safari ? WebView Android 完全対応 45Chrome Android 完全対応 45Firefox Android ? Opera Android 未対応 なしSafari iOS ? Samsung Internet Android 完全対応 5.0
label
非推奨
Chrome 未対応 ? — 54
補足
未対応 ? — 54
補足
補足 Deprecated in Chrome 45.
Edge ? Firefox ? IE 未対応 なしOpera 未対応 なしSafari ? WebView Android 未対応 ? — 54
補足
未対応 ? — 54
補足
補足 Deprecated in Chrome 45.
Chrome Android 未対応 ? — 54
補足
未対応 ? — 54
補足
補足 Deprecated in Chrome 45.
Firefox Android ? Opera Android 未対応 なしSafari iOS ? Samsung Internet Android 未対応 ? — 6.0
補足
未対応 ? — 6.0
補足
補足 Deprecated in Samsung Internet 5.0.
onactiveChrome 完全対応 45Edge 完全対応 ≤79Firefox ? IE 未対応 なしOpera ? Safari ? WebView Android 完全対応 45Chrome Android 完全対応 45Firefox Android ? Opera Android 未対応 なしSafari iOS ? Samsung Internet Android 完全対応 5.0
onaddtrackChrome 完全対応 26Edge 完全対応 12Firefox 完全対応 50IE 未対応 なしOpera 未対応 なしSafari 完全対応 ありWebView Android 完全対応 37Chrome Android 完全対応 26Firefox Android 完全対応 50Opera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.5
oninactiveChrome 完全対応 45Edge 完全対応 ≤79Firefox ? IE 未対応 なしOpera ? Safari ? WebView Android 完全対応 45Chrome Android 完全対応 45Firefox Android ? Opera Android 未対応 なしSafari iOS ? Samsung Internet Android 完全対応 5.0
onremovetrackChrome 完全対応 26Edge 完全対応 12Firefox 未対応 なしIE 未対応 なしOpera 未対応 なしSafari 完全対応 ありWebView Android 完全対応 37Chrome Android 完全対応 26Firefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.5
removeTrackChrome 完全対応 26Edge 完全対応 12Firefox 完全対応 ありIE 未対応 なしOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 37Chrome Android 完全対応 26Firefox Android 完全対応 ありOpera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 1.5
removetrack eventChrome 完全対応 ありEdge 完全対応 12Firefox 未対応 なしIE 未対応 なしOpera 未対応 なしSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
stop
非推奨
Chrome 未対応 ? — 47Edge 未対応 13 — 79Firefox ? IE 未対応 なしOpera 未対応 なしSafari ? WebView Android 未対応 ? — 47Chrome Android 未対応 ? — 47Firefox Android ? Opera Android 未対応 なしSafari iOS ? Samsung Internet Android 未対応 ? — 5.0

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。
実装ノートを参照してください。
実装ノートを参照してください。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

関連情報