使用recordrtc进行webrtc电话会议录音

Webrtc conference call recording using recordrtc

我正在使用 Angular 7 和 WebRTC 构建新应用程序,并且我使用 recordRTC.js 来录制(音频和视频)我的问题是当我录制多个流时,只录制了第一个流的音频。

public addStreamToRecorder(stream: MediaStream) 
{

  if (!this.recorder) 
     {
      this.recorder = RecordRTC([stream],{type: "video"});
      this.recorder.startRecording();
     } 
  else 
     {
      this.recorder.getInternalRecorder().addStreams([stream]);
     }
 }

经过调查我发现 reocrdrtc 中的 appendStreams 函数不能混合音频

我通过将 recordRTC 中的 appendStreams 函数更新为最新版本解决了这个问题,我从 MultiStreamRecorder (https://github.com/streamproc/MediaStreamRecorder)

将 recordRTC 中的 appendStreams 替换为

this.appendStreams = function (streams) {
    if (!streams) {
        throw 'First parameter is required.';
    }

    if (!(streams instanceof Array)) {
        streams = [streams];
    }

    arrayOfMediaStreams.concat(streams);
    streams.forEach(stream => {
        if (stream.getTracks().filter(function (t) {
            return t.kind === 'video';
        }).length) {
            var video = getVideo(stream);
            video.stream = stream;
            videos.push(video);
        }

        if (stream.getTracks().filter(function (t) {
            return t.kind === 'audio';
        }).length && this.audioContext) {
            var audioSource = this.audioContext.createMediaStreamSource(stream);
            audioSource.connect(this.audioDestination);
            self.audioSources.push(audioSource);
        }
    });
};