将MediaRecorder录制的音频转换为base64

7
我正在使用MediaRecorder API在我的页面上录制音频。
我需要将这个音频转换为base64格式。
可以参考这个示例
每当有新数据可用时,它会将数据推送到数组中,如下所示:
function handleDataAvailable(event) {
  if (event.data && event.data.size > 0) {
    recordedBlobs.push(event.data);
  }
}

然后,它将所有这些数据结合起来,如下所示:
var superBuffer = new Blob(recordedBlobs, {type: 'video/webm'});

那么我该如何将这个superBuffer转换为base64呢?
1个回答

15

您可以使用FileReader对象来实现此操作。

var reader = new window.FileReader();
reader.readAsDataURL(superBuffer); 
reader.onloadend = function() {
   base64 = reader.result;
   base64 = base64.split(',')[1];
   console.log(base64 );
}

答案来自将 Blob 转换为 base64

阅读更多关于FileReader以获得更好的理解。


如果你正在尝试使用Node的FS API将base64编码的blob写入文件,那么这个答案非常有用。如果不执行.split(',')[1]部分,则会生成损坏的webm文件。 - Sepehr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接