在视频通话期间将音频添加到传入流以记录通话双方的声音

Adding audio to an incoming stream during video call to record voice of both parties in a call

我已经创建了一个使用 peer js 发起视频通话的应用程序。我正在使用 mediarecorder Api 来记录来自呼叫者的传入流。但是,我需要在通话中添加呼叫者和接收者的音频到录音中,视频应该只有呼叫者(传入流)。

我试过https://github.com/muaz-khan/MultiStreamsMixer这个。但是,在录制时,我通过 vlc 得到了一个无法读取的文件。

我也试过将本地音轨添加到录制流中,但这并没有将 2 个音轨合并为一个,而且只录制了传入流的音频。

我可以通过使用网络音频来做到这一点 API。我从两个流中获取了音轨,并使用音频上下文将它们合并为一个。

var OutgoingAudioMediaStream = new MediaStream();
OutgoingAudioMediaStream.addTrack(OutgoingStream.getAudioTracks()[0]);

var IncomingAudioMediaStream = new MediaStream();
IncomingAudioMediaStream.addTrack(IncomingStream.getAudioTracks()[0]);

const audioContext = new AudioContext();

audioIn_01 = audioContext.createMediaStreamSource(OutgoingAudioMediaStream);
audioIn_02 = audioContext.createMediaStreamSource(IncomingAudioMediaStream);

dest = audioContext.createMediaStreamDestination();

audioIn_01.connect(dest);
audioIn_02.connect(dest);

dest.stream.addTrack(IncomingStream.getVideoTracks()[0]);
var RecordingStream = dest.stream;

效果很好。