Вот мой код расширения Chrome, который захватывает экраны. Я хочу остановить объект после того, как он захватил один кадр, используя MediaRecoder, но он не может остановиться с dataavailable
if (localStorage.getItem('EventAgeStamps')) {
var EventAgeStampsObj = JSON.parse(localStorage.getItem('EventAgeStamps'));
var capturetime = new Date();
var capturemin = capturetime.getMinutes();
var seconds = capturetime.getSeconds();
var screens = EventAgeStampsObj.screens;
for (i = 0; i < screens.length; i++) {
var j = 0;
if ((capturemin == screens[i]) && (seconds > 15 && seconds < 17)) {
IsPause = false;
var mediaRecorder = new MediaRecorder(stream, {mimeType: 'video/webm'});
// mediaRecorder.start(5000);
if (mediaRecorder.state == 'inactive')
mediaRecorder.start(5000);
else if (mediaRecorder.state == 'paused')
mediaRecorder.resume(5000);
mediaRecorder.addEventListener('dataavailable', event = > {
if(event.data && event.data.size > 100000
)
{
file = new File([event.data], getFileName('mp4'), {
type: 'video/mp4'
});
if (j == 0) {
IsPause = true;
CrossPlatformScreens(file, j);
}
j++;
mediaRecorder.pause();
mediaRecorder = null;
}
})
;
}
}
}