gpt4 book ai didi

node.js - Nodejs mp3 流式传输

转载 作者:行者123 更新时间:2023-12-03 02:18:13 26 4
gpt4 key购买 nike

我正在尝试创建一个小型 nodejs 服务器,它将接受将流式传输音频的请求。
我目前正在使用 0.10.5 api。我必须承认我是 nodejs 的新手。我不确定如何编辑此代码以成功流式传输音频。

        var http = environment.http;

//Steaming Audio
var path = environment.path,
util = environment.util,
url = environment.url;

http.createServer(function (request, response) {

var queryData = url.parse(request.url, true).query;
window.console.log(queryData);
if (!queryData.hasOwnProperty('file')) {
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.end();
window.console.log('In here');

} else {
window.console.log('In here2');
var filePath = queryData.file;
var extension = self.getExtension(filePath);
var acceptedExtensions = ['mp3', 'wav', 'aiff'];
if ($.inArray(extension, acceptedExtensions) == -1) {
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.end();
}

var stat = environment.fs.statSync(filePath);
response.writeHead(200, {
'Content-Type': 'audio/mpeg',
'Content-Length': stat.size
});
//window.console.log(filePath);
var readStream = environment.fs.createReadStream(filePath);
//var readable = new require('stream').Readable();
readStream.pipe(response);

}


}).listen(10000);

当我提出请求时 http://localhost:10000/?file=/Users/acasanova/Music/Cass%20Beats/45th.mp3控制台显示“In here2”,然后显示“In here”。我试图弄清楚为什么它似乎两次满足请求以及为什么音频没有被流式传输。

最佳答案

您在此处获得第一个响应的一个非常简单的原因可能是因为您的浏览器正在寻找一个 favicon 文件,您的 Node 应用程序会以 404 响应该文件。这是我在尝试编写简单的代码时通常观察到的node.js 中的应用程序。

至于为什么音频没有流式传输,我必须正确调查。但我不知道您为什么尝试将内容长度设置为 node.js httpServer,因为它默认支持编写分 block 响应( Transfer-Encoding: chunked )(这是流式传输所需的)。这种方法显然有一些问题,但我必须正确调查它才能给你一个明确的答案。

关于node.js - Nodejs mp3 流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com