mozCaptureStream 的使用停止视频元素的音频输出

Usage of mozCaptureStream stop audio output of video element

在视频标签上调用 mozCaptureStream API 导致停止音频输出

OS: Windows 10 (x64) 浏览器:Mozilla Firefox 100.0.2(64 位)

这是BUG 1178751,Firefox 确实破坏了原始媒体元素中的AudioSink,因此它被转移到新生成的MediaStream 中。

他们仍在努力(7 年后),希望他们有一天会修复它并停止前缀 captureStream()

在这一天到来之前,您可以使用 AudioContext 来播放 MediaStream 的音频:

const vid = document.querySelector("video");
vid.onplay = (evt) => {
  const stream = vid.captureStream ? vid.captureStream() : vid.mozCaptureStreamUntilEnded();
  console.log(stream);
  if (!vid.captureStream) {
    const ctx = new AudioContext();
    const dest = ctx.createMediaStreamSource(stream);
    dest.connect(ctx.destination);
  }
};
<video src="https://upload.wikimedia.org/wikipedia/commons/2/22/Volcano_Lava_Sample.webm" crossorigin controls autoplay></video>