Запись нескольких аудиодорожек, доступных в потоке, с помощью MediaRecorder

Я создаю плагин для устройства записи экрана для магазина Chrome. Я добавляю звуковую дорожку микрофона в медиапоток, который содержит (видеодорожка экрана + системная звуковая дорожка). Таким образом, последний поток содержит 2 звуковых дорожки: микрофон и системный звук.

Когда я передаю этот поток в MediaRecorder(поток), чем в конечном видео, я могу слушать только одно аудио, которое имеет индекс 0 в stream.getAudioTracks (), то есть MediaRecorder записывает только одну звуковую дорожку.

Итак, как записать поток, содержащий несколько звуковых дорожек, с помощью MediaRecorder?

0 ответов

Вы можете посмотреть Библиотеку Муаза Хана для многопоточного микширования. Или вы можете сделать что-то вроде этого.

 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]);
Другие вопросы по тегам