3
我在从节点提供二进制数据时遇到问题。我工作的节点模块名为node-speak它执行TTS(文本到语音)并返回一个base64编码的音频文件。从Nodejs提供二进制/缓冲区/ base64数据
到目前为止,我这样做是为了从base64
转换缓冲器/二进制文件,然后为它服务:
// 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
文件。
注:基于64位的数据是有效的,我可以成为它像这样[见下文],它工作正常:
// assume proper headers sent and "src" = base64 data
res.end("<!DOCTYPE html><html><body><audio src=\"" + src + "\"/></body></html>");
那么,为什么我不能服务于二进制文件,我在做什么错?
感谢您注意到输入错误,我应该看到,当将代码粘贴到SO中时。并感谢您的答案。 我仍然有问题,但在弹性它现在提供有效的'音频/ x-wav'文件。 – Christopher
感谢您的帮助,如果您有时间可以查看以下问题:http://stackoverflow.com/q/8354936/371040 – Christopher