Node.js和HTML5audio

我试图让我的node.js服务器为HTML5audio标签的audio文件服务器。 目前,我通过一个明确的静态提供程序引用audio文件,但是这将允许声音播放一次,然后永远不会再播放。

从我已经能够收集为了使声音正常工作寻找或循环,我需要提供“Content-Range”标题,当我的audio文件被请求。 我高度怀疑expression式的staticProvider是为我做的,所以看起来我需要使用自定义代码来提供文件。 不幸的是,我对node.js相当陌生,像服务文件这样的东西还是有点超出我的意思。 任何人都可以提供一些build议,我怎样才能为我的audio文件提供适当的元数据?

[编辑](删除旧的服务器代码,因为它不会有任何好处!)

对不起,我通常不会提出这样广泛的问题,但我真的不知道从哪里开始。 有什么build议么?

[解]

所以看来,解决scheme只是使用更新的软件。 我试图expression,而不是内置的连接HTTP中间件,因为我认为连接没有做静态文件服务的权利。 原来,我只是在查看一个更新版本的连接的文档,而节点附带的版本有点旧了。 一旦我更新了我的连接库(我只是用npm来安装最新的,对于那些好奇的),下面的工作非常漂亮:

var connect = require('connect'); var server = connect.createServer( // If your server errors on this line, saying it doesn't know what // "static" is you need to get the latest connect! connect.static(__dirname + '/public') ); server.listen(PORT); 

静态服务逻辑由底层连接服务器完成(使用其静态中间件)。 有“Content-Range”头文件的代码( 这里请参阅第148行),但是这些头文件只有在底层客户端(浏览器的HTML5实现)发送正确的请求头文件时才会设置。

也许这个谷歌组的post可以帮助你。 话题是有点不同(videostream),但我认为这个问题的核心是相同的。