MediaStreamTrack.stop()

MediaStreamTrack.stop() 메서드는 트랙을 정지합니다.

구문

js
track.stop();

설명

stop() 메서드를 호출하면 사용자 에이전트에게 MediaStreamTrack이 소스(파일, 네트워크 스트림, 장치 카메라와 마이크...)를 더는 필요로 하지 않음을 표현합니다. 두 개의 탭이 장치의 마이크에 접근하고 있는 경우처럼, 다수의 트랙이 하나의 소스를 사용하고 있을 수도 있으므로 소스 자체는 즉시 멈추지 않을 수도 있으며, 대신 트랙과 소스를 즉시 분리합니다. 아무런 미디어 트랙도 소스를 사용하지 않는 상태가 되면 그때 소스가 완전히 정지합니다.

stop()을 호출함과 동시에 readyState 속성은 ended로 바뀝니다.

예제

비디오 스트림 정지

이번 예제는 주어진 <video> 요소의 모든 트랙에서 stop()을 호출해 비디오 스트림을 정지하는 함수입니다.

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

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

  videoElem.srcObject = null;
}

우선 비디오 요소에서 srcObject 속성을 사용해 스트림을 가져오는 것부터 시작합니다. 그다음으로는 getTracks() (en-US) 메서드를 사용해 스트림의 트랙 목록을 가져오고, 이제 forEach()로 각 트랙의 stop() 메서드를 호출합니다.

마지막으로, srcObjectnull로 설정해서 MediaStream (en-US)과의 연결을 끊어, 객체를 해제할 수 있도록 합니다.

명세

Specification
Media Capture and Streams
# dom-mediastreamtrack-stop

브라우저 호환성

BCD tables only load in the browser

같이 보기