将base64音频转换为文件。

9
我有一个音频数据块,然后我运行:
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)。当传递给HTML音频播放器时,base64工作正常。在服务器上,我尝试了
fs.writeFileSync('file.ogg', base64data);

我总是成功创建文件,但无法播放,我做错了什么,请问?


以二进制形式而非 base64 的方式发送音频文件,使用 FormData。 - Endless
1个回答

8

这里有一个以base64编码的二进制数据字符串。首先您需要剪裁数据url元信息,然后可以从base64字符串创建二进制缓冲区并将其存储到文件中。

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

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