MediaRecorder APIに続くMediaStreamRecorderを使用して、ブラウザ間のオーディオおよびビデオストリームを記録しています。ブラウザウィンドウが最小化されたときにMediaStreamRecorderが録画を停止します
私が直面している問題は、ブラウザウィンドウが最小化されるたびにイベントが発生するのを止めることです。最小化すると、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.");
}
}