From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/web/api/mediastreamtrack/stop/index.html | 125 ++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 files/ja/web/api/mediastreamtrack/stop/index.html (limited to 'files/ja/web/api/mediastreamtrack/stop') diff --git a/files/ja/web/api/mediastreamtrack/stop/index.html b/files/ja/web/api/mediastreamtrack/stop/index.html new file mode 100644 index 0000000000..be6c01e780 --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/stop/index.html @@ -0,0 +1,125 @@ +--- +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")}}オブジェクトへの参照を解くためにsrcObjectnullを設定することで、このオブジェクトは解放できるようになります。

+ +

仕様

+ + + + + + + + + + + + + + + + +
仕様状況コメント
{{ SpecName('Media Capture', '#widl-MediaStreamTrack-stop', 'MediaStreamTrack.stop()') }}{{ Spec2('Media Capture') }}初版
+ +

ブラウザ互換性

+ +

{{ CompatibilityTable }}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatVersionUnknown }}{{CompatVersionUnknown}}{{ CompatGeckoDesktop(34) }}[1]{{ CompatNo }}{{ CompatVersionUnknown }}{{ CompatUnknown }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Android
Basic support{{ CompatUnknown }}{{ CompatVersionUnknown }}{{CompatVersionUnknown}}{{ CompatGeckoMobile(34) }}{{ CompatNo }}{{ CompatUnknown }}{{ CompatUnknown }}{{ CompatVersionUnknown }}
+
+ +

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

+ +

関連項目

+ + -- cgit v1.2.3-54-g00ecf