Just faced similar issue, and this is my solution.
Firstly you set up a timer, then call MediaRecorder.requestData() frequently, finally check your data size.
let recordedBlobs = [];
let recordedBlobSize = 0;
let mediaRecorder = new MediaRecorder(stream, options);
mediaRecorder.onstop = handleStop;
mediaRecorder.ondataavailable = handleDataAvailable;
mediaRecorder.start();
setInterval(onTimerUpdate, 10000)
function onTimerUpdate() {
mediaRecorder.requestData()
}
function handleDataAvailable(event) {
if (event.data && event.data.size > 0) {
recordedBlobs.push(event.data);
recordedBlobSize += event.data.size
// check your size here
}
}