我有一个音频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);
我总是创建文件,但它永远不会播放,我做错了什么?
答案 0 :(得分:2)
您在此处使用base64字符串编码二进制数据。首先,您需要修剪数据网址元信息。然后,您可以从base64字符串创建二进制缓冲区并将其存储到文件。
fs.writeFileSync('file.ogg', Buffer.from(base64data.replace('data:audio/ogg; codecs=opus;base64,', ''), 'base64'));