将 base64 音频转换为文件

Oll*_*lli 5 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..."
}
Run Code Online (Sandbox Code Playgroud)

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

fs.writeFileSync('file.ogg', base64data);
Run Code Online (Sandbox Code Playgroud)

我总是创建文件,但它从不播放,请问我做错了什么?

Ily*_*vov 8

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

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