MediaStream:removeTrack() 方法

removeTrack() 方法是 MediaStream 接口的方法,用于从流中移除 MediaStreamTrack

语法

js
removeTrack(track)

参数

track

将从流中移除的 MediaStreamTrack

返回值

无 (undefined)。

示例

以下示例演示了如何从 MediaStream 中移除音频和视频轨道。fetchStreamFunctionfetchStreamButton 的事件处理程序。单击按钮时,系统会从设备捕获音频和视频。removeTracksFunctionremoveTracksButton 的事件处理程序。单击此按钮时,音频和视频轨道将从 MediaStream 中移除。

js
let initialStream = null;
let newStream = null;

let fetchStreamButton = document.getElementById("fetchStream");
let removeTracksButton = document.getElementById("removeTracks");

async function fetchStreamFunction() {
  initialStream = await navigator.mediaDevices.getUserMedia({
    video: { width: 620, height: 310 },
    audio: true,
  });
  if (initialStream) {
    await attachToDOM(initialStream);
  }
}

async function attachToDOM(stream) {
  newStream = new MediaStream(stream.getTracks());
  document.querySelector("video").srcObject = newStream;
}

async function removeTracksFunction() {
  let videoTrack = newStream.getVideoTracks()[0];
  let audioTrack = newStream.getAudioTracks()[0];

  newStream.removeTrack(videoTrack);
  newStream.removeTrack(audioTrack);

  // Stream will be empty
  console.log(newStream.getTracks());
}

fetchStreamButton.addEventListener("click", fetchStreamFunction);
removeTracksButton.addEventListener("click", removeTracksFunction);

规范

规范
媒体捕获和流
# dom-mediastream-removetrack

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。