使用MediaRecorder录制流中可用的多条音频轨道

问题描述 投票:1回答:1

我正在为Chrome商店构建一个屏幕录像机插件。我正在将麦克风的音频轨道添加到媒体流中,其中包含(屏幕的视频轨道+系统音频轨道)。因此,最终流包含2个音轨,一个是麦克风,另一个是系统音频。

当我将此流传递给MediaRecorder(stream)时,比最终视频中的声音只能听stream.getAudioTracks()中0索引处的单个音频,即MediaRecorder为仅录制单个音轨。

那么如何使用MediaRecorder录制包含多条音轨的流?

mediarecorder audiotrack screen-recording mediastream
1个回答
0
投票

您可以查看Muaz Khan's Library以进行多流混合。或者您可以像这样处理。

 const screenStream;
 const micStream;
 const remoteStream;
// merge audio from remote stream and micStream

const audioContext = new AudioContext();
const source1 = audioCtx.createMediaStreamSource(micStream);
const source2 = audioCtx.createMediaStreamSource(remoteStream);
const destination = audioCtx.createMediaStreamDestination();

//connect sources to destination 
// you can add gain nodes if you want 
source1.connect(destination);
source2.connect(destination);

const outputStream= new MediaStream();
outputStream.addTrack(screenStream.getVideoTracks()[0]);
outputStream.addTrack(destination.stream.getAudioTracks()[0]);
© www.soinside.com 2019 - 2024. All rights reserved.