MediaRecorder и запись нескольких MediaStream
При создании MediaRecorder с несколькими MediaStream на выходе в аудио имеется только запись стрима, стоящего первым в списке.
В примере первым указан remStream, на выходе слышно только его. Если поставить первым locStream, то наоборот будет слышно только этот стрим.
Client
const recorder = new MediaRecorder(
new MediaStream([
remStream.getAudioTracks()[0], // Stream из WebRTC
locStream.getAudioTracks()[0] // Stream из getUserMedia
])
);
recorder.ondataavailable = e => {
socket.emit('transferStreamRecord', {buffer: e.data});
};
// ...
recorder.start(500);
Server
socket.on('transferStreamRecord', data => {
chunks.push(data.buffer);
});
// ...
const buffer = Buffer.concat(chunks);
const ws = fs.createWriteStream('./test.webm');
ws.write(buffer);
ws.end();