Запись нескольких аудиодорожек, доступных в потоке, с помощью 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]);