【发布时间】:2017-04-17 13:41:55
【问题描述】:
我正在使用开源 JavaScript 库 MediaStreamRecorder 在 Mozilla Firefox 和 Google Chrome 中录制音频和视频 webRTC 调用。
通话录音成功,但我面临以下问题。
如果我在 multiStreamRecorder.start() 中使用 1 秒 (1000 毫秒) 的时间间隔,则不会触发 multiStreamRecorder.ondataavailable 事件。这就是为什么没有错误或没有登录控制台的原因。
但是,如果我使用 1.5 秒(1500 毫秒)或更长的时间间隔,它会触发 multiStreamRecorder.ondataavailable 事件,并且一切正常。
(仅限视频案例)
我只想将间隔保持在 1 秒(1000 毫秒)。
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.");
}
}
【问题讨论】:
标签: javascript websocket streaming blob webrtc