RecordRTC:间隔播放到Web服务器的视频文件无法播放

时间:2018-12-25 07:59:33

标签: node.js electron recordrtc

我想在每个指定的时间将录制的视频上传到Web服务器。以下代码将视频上传到我的Django Web服务器上。可以播放第一个上传的视频,但是不能播放下一个视频。知道为什么会这样吗?

几个月前,我还在Github上发布了一个问题,但是我还没有任何解决方案。 https://github.com/muaz-khan/RecordRTC/issues/438

n

为什么不能播放第一个之后的所有上传内容?

1 个答案:

答案 0 :(得分:0)

我从其他人那里得到了一些建议,并提出了解决方案。下面是我的代码段。

setInterval(progressive_upload, 900000);
function progressive_upload(){
  var email = document.getElementById('user_id').value;
  theRecorder.stop();
  theStream.getTracks().forEach(track => { track.stop(); });
  count += 1;
  var blob = new Blob(recordedChunks, {type: "video/webm"});
  var data = new FormData();
  data.append('data_blob', blob, email + '_' + count + '.' + blob.type.split('/')[1]);
  var xhr = new XMLHttpRequest();
  xhr.open('POST', 'http://localhost:8000/video_upload/', true);
  xhr.send(data);
  navigator.mediaDevices.getUserMedia(constraints)
      .then(function(stream){
        theStream = stream;
        var video = document.querySelector('video');
        video.src = URL.createObjectURL(stream);
        try {
          recorder = new MediaRecorder(stream, {mimeType : "video/webm"});
        } catch (e) {
          console.error('Exception while creating MediaRecorder: ' + e);
          return;
        }
        recordedChunks = []
        theRecorder = recorder;
        recorder.ondataavailable = 
            (event) => {
              recordedChunks.push(event.data); 
          };
        recorder.start(100);
      })
      .catch(e => { console.error('getUserMedia() failed: ' + e); });
}

希望它将对以后的人有所帮助。