Tag: shoutcast

如何创build一个实时audiostream队列?

所以我正在考虑创build一个节点应用程序,在这个应用程序中,用户可以将歌曲添加到“队列”,并将歌曲实时播放给所有用户,但环顾四周后,我不太清楚如何完成此操作。 我读的主要文章是这个: http : //pedromtavares.wordpress.com/2012/12/28/streaming-audio-on-the-web-with-nodejs/ 看起来icecast服务器可以很好地工作,但是有没有一种方法可以让节点将歌曲推送到由icecast服务器播放的队列中? 到目前为止,从我读过的东西看来,pipe理歌曲的唯一方法是指定播放列表或手动添加歌曲,并且在队列中没有歌曲时告诉服务器不播放任何内容,这似乎也是一个潜在的问题。

重写Node.js HTTPparsing器

我在正常的HTTP服务器上使用Node的基本http.request()函数没有问题。 我需要使用SHOUTcast服务器的http.request() (或类似的)。 SHOUTcast“协议”与HTTP完全兼容,除了一个细节…第一个响应行。 正常的HTTP服务器响应: HTTP/1.1 200 OK SHOUTcast服务器回应: ICY 200 OK 再次,协议的其余部分是相同的。 唯一的区别是HTTP/1.x与ICY 。 我想扩展,子类或以某种方式修改Node的http.request()函数,这样我就可以使它与SHOUTcast服务器一起工作。 连接到带有节点的SHOUTcast 之前已经完成了 ,但是只能通过重新发明整个车轮。 我宁愿不这样做,因为这是一个小的协议差异。 我的问题:有没有办法做到以下一种? 扩展或覆盖 Node的HTTPparsing器的相关部分。 (我怀疑这是可能的,因为它似乎parsing器是本地代码 。) 创build我自己的一小段代码,用于parsingHTTP的相关部分,但重复使用尽可能多的HTTP现有Node组件。 创build一个简单的内部代理 (或以某种方式中继数据),以便我可以在到达Node的HTTP分析器之前修改第一个服务器响应行。 别的东西? 我也考虑过使用Shred ,但是它没有提供stream式响应的选项。 (在启动事件之前,它会等待整个服务器响应完成,这对于数据可以无限运行的stream式服务器来说是无效的)。沿着同样的路线,我尝试了Request ,但它使用Node自己的HTTP分析器,所以我得到了和本地HTTP客户端一样的parsing错误。