Javascript 使用Node Js将bin文件解码为mp3
我正在使用以下方法将MP3文件编码到Node Js中的Base64:Javascript 使用Node Js将bin文件解码为mp3,javascript,node.js,mp3,decode,encode,Javascript,Node.js,Mp3,Decode,Encode,我正在使用以下方法将MP3文件编码到Node Js中的Base64: encodebase64 = function(mp3file){ var bitmap = fs.readFileSync(mp3file); var encodedstring = new Buffer(bitmap).toString('base64'); fs.writeFileSync('encodedfile.bin', encodedstring);} 然后我又想从Base64 bin文件构造MP3文件,但是创
encodebase64 = function(mp3file){
var bitmap = fs.readFileSync(mp3file);
var encodedstring = new Buffer(bitmap).toString('base64');
fs.writeFileSync('encodedfile.bin', encodedstring);}
然后我又想从Base64 bin文件构造MP3文件,但是创建的文件缺少一些头,所以显然解码有问题。
解码功能是:
decodebase64 = function(encodedfile){
var bitmap = fs.readFileSync(encodedfile);
var decodedString = new Buffer(bitmap, 'base64');
fs.writeFileSync('decodedfile.mp3', decodedString);}
我想知道是否有人能帮忙
谢谢。可能是编码参数的问题。有关详细信息,请参阅。在解码时尝试使用
utf8
,看看这是否有区别。您在什么平台上运行代码?@Noah提到了一种使用缓冲区的base64解码,但是如果您使用与答案相同的代码,并尝试使用它创建MP3文件,那么它们将无法播放,并且文件大小将比原始文件大,就像您在开始时所经历的那样
我们应该将缓冲区直接写入要创建的mp3文件,而不将其(缓冲区)转换为ASCII字符串:
// const buff = Buffer.from(audioContent, 'base64').toString('ascii'); // don't
const buff = Buffer.from(audioContent, 'base64');
fs.writeFileSync('test2.mp3', buff);
更多关于的信息我也尝试了utf8,但仍然不起作用!它创建解码的mp3文件,但解码的mp3文件的大小大于原始文件,并且由于缺少标题错误而无法运行!我正在Webinos平台上运行代码!