브라우저 간 오디오 및 비디오 스트림 기록을 위해 MediaRecorder API 다음에 오는 MediaStreamRecorder을 사용하고 있습니다.브라우저 창이 최소화 될 때 MediaStreamRecorder가 녹음을 중지합니다.
내가 직면 한 문제는 브라우저 창을 최소화 할 때마다 이 (가) ondataavailable
이벤트를 발생시키는 것을 중지한다는 것입니다. 최소화 한 후에는 ondataavailable
이벤트를 트리거하지 않으며 기록을 중지하고 다시 시작할 때까지 동일한 창으로 복귀해도 해고되지 않습니다.
브라우저 콘솔에서 예외가 발생하지 않습니다. 브라우저 창을 최소화 할 때까지 모든 것이 잘 작동합니다. 일단 그렇게하면 ondataavailable
이벤트에서 실행되는 함수 내에서 코드 실행이 중지됩니다.
var ws;
function start() {
ws = new WebSocket("wss://xyz/");
ws.onopen = function() {
console.log("WebSocket has been opened!");
};
ws.onmessage = function (message) {
console.log("A messsage is received from WebSocket Server.", message);
};
ws.onclose = function (e) {
console.log('WebSocket is closed. Reconnection will be attempted in 5 second.', e.reason);
setTimeout(function() {
start();
}, 5000);
};
ws.onerror = function (err) {
console.error('WebSocket encountered an error: ', err.message, 'Closing WebSocket');
ws.close();
};
}
start();
function startRecording(localStream, remoteStream) {
if (localStream != null && remoteStream != null) {
multiStreamRecorder = new MultiStreamRecorder([localStream, remoteStream], "video/webm");
multiStreamRecorder.mimeType = "video/webm";
multiStreamRecorder.ondataavailable = function (blob) {
console.log("sending blob to websocket server");
ws.send(blob);
};
multiStreamRecorder.start(1500);
}
else{
console.error("One or more streams are null.");
}
}