오픈 소스 JavaScript 라이브러리 MediaStreamRecorder을 사용하여 Mozilla Firefox 및 Chrome에서 오디오 및 비디오 webRTC 호출을 녹음하고 있습니다.MediaStreamRecorder가 ondataavailable 이벤트를 발생시키지 않습니다.
호출이 성공적으로 녹음되고 있지만 다음과 같은 문제가 있습니다.
multiStreamRecorder.start()
에서 1 초 (1000ms)의 시간 간격을 사용하면 multiStreamRecorder.ondataavailable
이벤트가 실행되지 않습니다. 그래서 오류가 없거나 콘솔에 로그인하지 않습니다.
그러나 1.5 초 (1500ms) 이상의 시간 간격을 사용하면 multiStreamRecorder.ondataavailable
이벤트가 발생하고 모든 것이 정상적으로 작동합니다.
(만 비디오 케이스에) 나는 단 1 초 (1000ms)으로 깜박임에 간격을 유지하려는.
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", blob);
ws.send(blob);
};
// It doesn't work with the 1000ms time interval
multiStreamRecorder.start(1500);
}
else{
console.error("One or more streams are null.");
}
}
'MediaRecorder.ondataavailable' 창이 최소화되거나 브라우저 탭이 전환 된 후에 실행되지 않습니다 ...이를 막을 수있는 방법이 있습니까? 또는 라이브러리의 본질에 있다면 탭을 전환하고 다시 컴백하면 어떻게 프로세스를 재개 할 수 있습니까? –
도서관에 대해 잘 모르겠습니다. [my fiddle] (https://jsfiddle.net/jib1/b0x7n7pe/)에서 원시 파일을 사용하며 탭 전환이나 최소화로 인해 fazed하지 않습니다. 예 : 10 초를 기록하도록 수정하십시오. WFM. – jib