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>
在视频标签上调用 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>