将base64音频转换为文件

时间:2018-01-16 23:44:52

标签: javascript node.js

我有一个音频blob,然后我运行

var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = () => {
  var base64data = reader.result;
  //log of base64data is "data:audio/ogg; codecs=opus;base64,GkX..."
}

现在我将这些数据发送到我的服务器,我尝试做的就是转换为' .ogg'文件(首选wav或mp3)。 base64在传递给HTML音频播放器时工作正常。 在服务器上我试过

fs.writeFileSync('file.ogg', base64data);

我总是创建文件,但它永远不会播放,我做错了什么?

1 个答案:

答案 0 :(得分:2)

您在此处使用base64字符串编码二进制数据。首先,您需要修剪数据网址元信息。然后,您可以从base64字符串创建二进制缓冲区并将其存储到文件。

fs.writeFileSync('file.ogg', Buffer.from(base64data.replace('data:audio/ogg; codecs=opus;base64,', ''), 'base64'));