将base64音频文件保存到nodejs中的文件夹

Save base64 audio file to folder in nodejs

我有一个 base64 字符串的音频文件。我想用 nodejs 将其保存为本地文件夹中的文件。我已经使用 fs 库集成并完成了此操作,并在本地文件夹中获取了 mp3 文件,但无法播放。你能支持我解决这个问题吗?这是我在 nodejs 中的代码。

let base64File = 'data:audio/mp3;base64,UklGRiRAHwBXQVZFZm10IBAAAAABAAIAgLsAAAD...........';
const DIR = BASE_PATH + 'src/storage/voice/';
const filename = 'sample.mp3';
const fileurl = DIR + filetname;
const fileContents = Buffer.from(base64File, 'base64');
fs.writeFile(fileurl, fileContents, (err) => {
   if (err) return console.error(err);
   console.log('file saved to ', filetname);
});

如前所述,您的 Base64 音频是原始 RIFF/WAV 文件,可以直接写入 .wav 文件

const fs = require('fs')

const wavUrl = 'data:audio/wav;base64,UklGRryMMgBXQVZFZm10IBAAAAABAAIARKwAABCxAgAEA...'
const buffer = Buffer.from(
  wavUrl.split('base64,')[1],  // only use encoded data after "base64,"
  'base64'
)
fs.writeFileSync('./audio.wav', buffer)
console.log(`wrote ${buffer.byteLength.toLocaleString()} bytes to file.`)

如果您确实有 Opus 或 MP3 文件,则必须先将其解码为原始 PCM 音频,然后在写入 .wav 文件.