Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Node Js将bin文件解码为mp3_Javascript_Node.js_Mp3_Decode_Encode - Fatal编程技术网

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

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文件,但是创

我正在使用以下方法将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文件,但是创建的文件缺少一些头,所以显然解码有问题。 解码功能是:

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平台上运行代码!