rtcmulticonnection:webrtc recordrtc没有返回blob

时间:2016-03-28 08:27:07

标签: webrtc

我正在尝试使用我的标准示例来简单地记录webrtc视频。图书馆在这里:https://github.com/muaz-khan/RTCMultiConnection

rtcMultiConnection.onstream = function(e) {
  var mediaElement = getMediaElement(e.mediaElement, {
        onRecordingStarted: function(type) {
            // www.RTCMultiConnection.org/docs/startRecording/
            rtcMultiConnection.streams[e.streamid].startRecording();
        },
        onRecordingStopped: function(type) {
            // www.RTCMultiConnection.org/docs/stopRecording/
            rtcMultiConnection.streams[e.streamid].stopRecording(function(blob){
              console.log("test");
              console.log(blob);
            });
        }});}

我可以按照函数调用的步骤进行操作,问题是回调永远不会从recordrtc.js运行....

它转到https://github.com/muaz-khan/RecordRTC/blob/master/RecordRTC.js

的第100行

它运行:

mediaRecorder.stop(_callback);

从不调用回调....

即使直接调用函数也不起作用:

        console.log(rtcMultiConnection.streams[e.streamid].audioRecorder.getBlob());
        console.log(rtcMultiConnection.streams[e.streamid].videoRecorder.save("a.png"));

我想知道两个不同版本的recordrtc和rtcmulticonneciton是否正在互动....任何想法?也许是较旧的记录,但我找不到旧版本

1 个答案:

答案 0 :(得分:2)

请使用blob.video

var stream = connection.streams['stream-id'];
stream.stopRecording(function(blob) {
    var h2;
    if (blob.audio) {
        h2 = document.createElement('h2');
        h2.innerHTML = '<a href="' + URL.createObjectURL(blob.audio) + '" target="_blank">Open recorded ' + blob.audio.type + '</a>';
        div.appendChild(h2);
    }
    if (blob.video) {
        h2 = document.createElement('h2');
        h2.innerHTML = '<a href="' + URL.createObjectURL(blob.video) + '" target="_blank">Open recorded ' + blob.video.type + '</a>';
        div.appendChild(h2);
    }
});

于2016年3月29日更新

以下是实际文档:

请确保:

  1. 您使用的是v2.2.2
  2. 您先致电startRecording
  3. 对于v3,您可以直接使用RecordRTC:

    connection.onstream = function(event) {
        recordStream(event.stream);
    };
    
    function recordStream(stream) {
        if (!!window.recorder) return;
        window.recorder = RecordRTC(stream, {
            type: 'video'
        });
        recorder.startRecording();
    }
    
    btnStopRecording.onclick = function() {
        if (!window.recorder) return;
        recorder.stopRecording(function() {
            var blob = recorder.blob;
    
            // or dataURL
            recorder.getDataURL(func_callback);
        });
    };
    
    btnStartRecording.onclick = function() {
        var stream = connection.attachStreams[0];
        recordStream(straem);
    
        // or
        var stream = connection.streamEvents['stream-id'].stream;
        recordStream(straem);
    };
    

    上面的代码片段也可以在v2.2.2中使用。