我正在尝试从画布录制视频,即使用户从选项卡导航(通过单击另一个选项卡或最小化窗口)。我正在使用一个计时器,即使用户使选项卡模糊以呈现画布,该计时器也会运行(我知道该计时器会在选项卡模糊时触发,因为我已经对其进行了测试)。但是当我将MediaStream
from附加canvas.captureStream()
到MediaRecorder
对象时,BlobEvent
fromondataavailable
回调的长度为 0。
下面是我正在尝试做的一个例子。
let canvas = document.getElementById('canvas');
// ...Assume that I'm rendering some kind of video/animation to the canvas here...
let stream = canvas.captureStream();
let mediaRecorder = new MediaRecorder(stream, { mimeType: 'video/webm; codecs="opus,vp8"' });
mediaRecorder.start();
mediaRecorder.ondataavailable = (event) => {
// This event's data is length 0 when the tab is blurred
console.log(event);
}
我知道ondataavailable
通常不会在标签背景下触发,我通过使用该requestData
功能来获得它MediaRecorder
,请假设它确实如此。