我想合并 getUserMedia 和 getDisplayMedia 流。我正在使用 MediaRecorder。当我从 getUserMedia 切换到 getDisplayMedia 然后 MediaRecorder 录制视频直到我不切换到 getDisplayMedia 时。然后 getDisplayMedia 产生自己的流,当我合并两个流时得到损坏的 mp4 视频。
最佳答案
启动两个不同的流并将音轨添加到来自 getDisplayMedia 的视频中,如下所示:
async function startRecording() {
videoStream = await navigator.mediaDevices.getDisplayMedia({
video: {MediaSource: "screen"},
});
audioStream = await navigator.mediaDevices.getUserMedia({
audio: {
sampleSize: 100,
frameRate: { max: 30 },
noiseSuppression: true,
echoCancellation: true,
channelCount: 2
}
});
var audioTrack = audioStream.getAudioTracks()[0];
videoStream.addTrack(audioTrack);
recorder = new MediaRecorder(videoStream);
const chunks = [];
recorder.ondataavailable = (e) => chunks.push(e.data);
recorder.onstop = (e) => {
const completeBlob = new Blob(chunks, { type: "video/mp4" });
videoFile = new File([completeBlob], "recording.mp4");
console.log(videoFile);
console.log(completeBlob);
vimeoCall(videoFile);
};
recorder.start();
}
关于node.js - 可以同时使用 getUserMedia 和 getDisplayMedia,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62792024/