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秒的延迟)。
谢谢!
mediaRecorder.requestData()
来触发 ondataavailable 以处理新的数据块。 - Buntel