我正在构建在线 Web 应用程序,它在画布上呈现视频,然后使用 canvas.captureStream() 和 mediaRecorder 记录画布。问题是当用户切换选项卡或最小化窗口时,画布会冻结。我的动画一直在运行,因为我使用了 webWorkerSetInterval(Hacktimer.js)。根据 chrome 他们尚未提供解决方案https://bugs.chromium.org/p/chromium/issues/detail?id=639105。
任何人都可以建议解决方法吗?我尝试了不允许最小化但不成功的新窗口。切换窗口时不停止录制。(仅在选项卡切换或最小化时停止)
我想在从画布录制的同时从视频元素录制音频。我有
var stream = canvas.captureStream(29);
Run Code Online (Sandbox Code Playgroud)
现在我将视频的audioTrack 添加到流中。
var vStream = video.captureStream();
stream.addTrack(vStream.getAudioTracks()[0]);
Run Code Online (Sandbox Code Playgroud)
但这会降低添加每个视频的性能。由于 captureStream() 对视频的处理非常繁重,并且还需要在 Chrome 中打开一个标志。有没有一种方法可以从视频元素仅创建音频 MediaStream,而不使用 captureStream()。
javascript google-chrome html5-video html5-audio mediastream