我想记录用户的麦克风 5 秒长的片段并将每个片段上传到服务器。我尝试使用 MediaRecorder 并以 5 秒的时间间隔调用 start() 和 stop() 方法,但是当我连接这些录音时,它们之间会出现“滴”的声音。所以我尝试使用 start() 方法的时间片参数记录 5 秒段:
navigator.mediaDevices.getUserMedia({ audio: { channelCount: 2, volume: 1.0, echoCancellation: false, noiseSuppression: false } }).then(function(stream) {
const Recorder = new MediaRecorder(stream, { audioBitsPerSecond: 128000, mimeType: "audio/ogg; codecs=opus" });
Recorder.start(5000);
Recorder.addEventListener("dataavailable", function(event) {
const audioBlob = new Blob([event.data], { type: 'audio/ogg' });
upload(audioBlob);
});
});
但只有第一段是可播放的。我能做什么,或者我怎样才能让所有的 blob 都可以播放?我必须记录然后上传每个片段。我无法制作 blob 数组(因为用户可以记录 24 小时甚至更多的数据,并且需要在用户记录时将数据上传到服务器上 - 延迟 5 秒)。
谢谢!