繁体   English   中英

使用Node Js将bin文件解码为mp3

[英]decoding a bin file to mp3 using Node Js

我正在使用此方法在Node Js中将MP3文件编码为Base64:

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提到了有关使用Buffer进行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);

有关fs.writeFile / fs.writeFileAsync的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM