--- title: MediaStreamTrack.stop() slug: Web/API/MediaStreamTrack/stop translation_of: Web/API/MediaStreamTrack/stop ---
{{APIRef("Media Capture and Streams")}}
{{domxref("MediaStreamTrack")}}のstop()
はトラックを停止します。
MediaStreamTrack.stop();
stop()
の呼び出しは、 {{glossary("user agent")}}へ、トラックのソース(ファイル、ネットワークストリーム、ローカルカメラやマイク)がこれ以上MediaStreamTrack
で必要とされないことを伝えます。複数のトラックが同じソースを使用すること(例えば、2つのタブがデバイスのマイクを使っている場合など)もあるため、ソースが必ずしも直ぐに停止させられる必要はありません。その代わり、トラックからの関連付けが解除され、そのトラックオブジェクトが停止されます。ソースからメディアトラックが使用されなくなると、ソースは実際に完全に停止させられるでしょう。
stop()
を呼び出した直後に、{{domxref("MediaStreamTrack.readyState", "track")}}の状態はended
になります。
In this example, we see a function which stops a streamed video by calling stop()
on every track on a given {{HTMLElement("video")}}.
この例では、与えられた{{HTMLElement("video")}}の各トラックのstop()
を呼び出すことで、ストリーミングされているビデオを停止する関数を定義しています。
function stopStreamedVideo(videoElem) { let stream = videoElem.srcObject; let tracks = stream.getTracks(); tracks.forEach(function(track) { track.stop(); }); videoElem.srcObject = null; }
{{domxref("HTMLMediaElement.srcObject", "srcObject")}}プロパティからビデオ要素のストリームを取得することで機能しています。次に、{{domxref("MediaStream.getTracks", "getTracks()")}}メソッドを呼び出すことで、ストリームのトラックリストを取得しています。ここから、{{jsxref("Array.forEach", "forEach()")}}を使ってトラックリストから各トラックを繰り返し呼び出し、それぞれのトラックでstop()
メソッドを呼び出しています。
最後に、{{domxref("MediaStream")}}オブジェクトへの参照を解くためにsrcObject
にnull
を設定することで、このオブジェクトは解放できるようになります。
仕様 | 状況 | コメント |
---|---|---|
{{ SpecName('Media Capture', '#widl-MediaStreamTrack-stop', 'MediaStreamTrack.stop()') }} | {{ Spec2('Media Capture') }} | 初版 |
{{Compat("api.MediaStreamTrack.stop")}}