首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rtcmulticonnection: webrtc记录not不返回blob

rtcmulticonnection: webrtc记录not不返回blob
EN

Stack Overflow用户
提问于 2016-03-28 08:27:06
回答 1查看 889关注 0票数 0

我试图简单地记录webrtc的视频使用我认为是一个标准的例子。图书馆在这里:https://github.com/muaz-khan/RTCMultiConnection

代码语言:javascript
复制
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行

它在那里运行:

代码语言:javascript
复制
mediaRecorder.stop(_callback);

从来不回电话..。

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

代码语言:javascript
复制
        console.log(rtcMultiConnection.streams[e.streamid].audioRecorder.getBlob());
        console.log(rtcMultiConnection.streams[e.streamid].videoRecorder.save("a.png"));

我想知道记录are和rtcmulticonneciton的两个不同版本是否相互作用.有什么想法吗?也许是旧的记录,但我找不到旧的版本

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-28 08:58:44

请使用blob.video

代码语言:javascript
复制
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日

以下是实际的文档:

  • http://www.rtcmulticonnection.org/docs/startRecording/

请确保:

  1. 您使用的是v2.2.2
  2. 你先打电话给startRecording

对于v3,可以直接使用RecordRTC:

代码语言:javascript
复制
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中使用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36258645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档