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() の定義
勧告改訂案 初版

ブラウザ互換性

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,