Webrtc запись телефонных конференций с использованием recordrtc - PullRequest
0 голосов
/ 30 сентября 2019

Я создаю новое приложение, используя 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]);
     }
 }

после расследования я обнаружил, что appendStreams работает в reocrdrtc, не смешивая аудио

1 Ответ

0 голосов
/ 03 октября 2019

Я исправил эту проблему, обновив функцию appendStreams в recordRTC последней версией, полученной из MultiStreamRecorder (https://github.com/streamproc/MediaStreamRecorder)

заменил appendStreams в recordRTC на

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);
        }
    });
};
...