MediaStreamTrack.stop()

MediaStreamTrackstop()はトラックを停止します。

文法

MediaStreamTrack.stop();

stop()の呼び出すことで、ユーザーエージェントへトラックのソース(ファイル、ネットワークストリーム、ローカルカメラやマイク)がこれ以上MediaStreamTrackで必要とされないことを伝えます。複数のトラックが同じソースを使用すること(例えば、2つのタブがデバイスのマイクを使っている場合など)もあるため、ソースが必ずしも直ぐに停止させられるとは限りません。その代わり、トラックからの関連付けが解除され、そのトラックオブジェクトが停止させられます。ソースからメディアトラックが使用されなくなると、ソースは実際に完全に停止させられるでしょう。

stop()を呼び出した直後に、trackの状態はendedになります。

In this example, we see a function which stops a streamed video by calling stop() on every track on a given <video>.

この例では、与えられた<video>の各トラックのstop()を呼び出すことで、ストリーミングされているビデオを停止する関数を定義しています。

function stopStreamedVideo(videoElem) {
  let stream = videoElem.srcObject;
  let tracks = stream.getTracks();

  tracks.forEach(function(track) {
    track.stop();
  });

  videoElem.srcObject = null;
}

srcObjectプロパティからビデオ要素のストリームを取得することで機能しています。次に、getTracks()メソッドを呼び出すことで、ストリームのトラックリストを取得しています。ここから、forEach()を使ってトラックリストから各トラックを繰り返し呼び出し、それぞれのトラックでstop()メソッドを呼び出しています。

最後に、MediaStreamオブジェクトへの参照を解くためにsrcObjectnullを設定することで、このオブジェクトは解放できるようになります。

仕様

仕様 状況 コメント
Media Capture and Streams
MediaStreamTrack.stop() の定義
勧告候補 初版

ブラウザ互換性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (有) (有) 34 (34)[1] 未サポート (有) ?
Feature Android Android Webview Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? (有) (有) 34.0 (34) 未サポート ? ? (有)

[1] Firefox 52以前のバージョンでは、ローカルトラック(getUserMedia()によって取得したもの)のみが停止可能です。 現在は、WebRTCに関連づけられたMediaStreamWeb Audio API ストリーム、CanvasCaptureMediaStreamを含む、全ての種類のトラックが停止可能です。

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: e53e04ac
 最終更新者: e53e04ac,