我遇到了从Node读取二进制数据的问题。我正在使用名为node-speak的Node模块,它可以将文本转换为语音(TTS),并返回Base64编码的音频文件。
到目前为止,我正在采用以下方式将base64
转换为Buffer / 二进制并进行服务:
// var src = Base64 data
var binAudio = new Buffer(src.replace("data:audio/x-wav;",""), 'base64');
现在我正在尝试使用以下标头从节点提供此音频:
res.writeHead(200, {
'Content-Type': 'audio/x-wav',
'Content-Length': binAudio.length
});
并像这样提供服务:
res.end(binAudio, "binary");
但它根本不起作用。我是否有什么理解不到位或者做错了什么,因为这并没有提供有效的audio/x-wav
文件。
注意:Base64数据是有效的,我可以像下面这样提供它,它可以正常工作:
// assume proper headers sent and "src" = base64 data
res.end("<!DOCTYPE html><html><body><audio src=\"" + src + "\"/></body></html>");
那么为什么我不能提供二进制文件,我做错了什么?
audio/x-wav
文件。 - Christopher