let mediaRecorder = '';
chrome.tabCapture.capture(captureConfig, stream => {
if (stream === null) {
chrome.tabs.sendMessage(id, {
error: chrome.runtime.lastError
});
return false;
}
const recordedBlobs: BlobPart[] = [];
mediaRecorder = new MediaRecorder(stream, {
videoBitsPerSecond: 2500000,
mimeType: 'video/webm;codecs=vp9'
});
mediaRecorder.ondataavailable = event => {
if (event.data && event.data.size > 0) {
recordedBlobs.push(event.data);
}
};
mediaRecorder.onstop = () => {
const superBuffer = new Blob(recordedBlobs, {
type: 'video/webm'
});
const link = document.createElement('a');
link.href = URL.createObjectURL(superBuffer);
link.setAttribute('download', `${filename}.webm`);
link.click();
};
mediaRecorder.start();
});
const stop = () => {
mediaRecorder.stop();
mediaRecorder.stream.getTracks().forEach(track => {
track.stop();
});
}