【问题标题】:Adding audio to an incoming stream during video call to record voice of both parties in a call在视频通话期间向传入流添加音频以录制通话双方的语音
【发布时间】:2021-03-28 00:23:02
【问题描述】:

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

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

我也尝试将本地音轨添加到录制流中,但这不会将 2 个音轨合并为一个,并且只会录制传入流的音频。

【问题讨论】:

  • 请将您的答案添加为答案。

标签: webrtc web-audio-api mediastream mediarecorder-api


【解决方案1】:

我可以通过使用 Web Audio 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;

效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-31
    • 2021-01-15
    • 1970-01-01
    • 2018-04-07
    • 2018-12-08
    • 2017-11-16
    • 1970-01-01
    相关资源
    最近更新 更多