在视频通话期间将音频添加到传入流以记录通话双方的声音
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;
效果很好。
我已经创建了一个使用 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;
效果很好。