NodeJS basedRadio(没有ShoutCast)

我喜欢创build一个基于NodeJS的广播电台, 而不使用ShoutCast。

基于NodeJS的播放列表

目前我已经设法将一个audio文件传送到浏览器,但是我不知道如何创build一个服务器端播放列表 ,这个播放列表持续地“播放”当前歌曲,并在到达结束时重新启动它。

那是我目前的做法:

'use strict'; var http = require('http'); var fs = require('fs'); var mm = require('musicmetadata'); var ID3 = require('id3'); var express = require('express'); var app = express(); var stream; function startPlaylist() { stream = fs.createReadStream(__dirname + '/AnsolasChill_loop.mp3', { start: 0 }); //10130000 /* * Start serverside "Playback" here. * Restart Playlist once the end of the song has been reached */ } startPlaylist(); // Start Server Side Playlist once the Server starts. app.get('/', function(req, res) { /* * get current playback postion of playlist * start stream from current playback position */ res.setHeader('Content-Type', 'audio/mpeg'); stream.pipe(res); // Events stream.on('data', function(chunk) { console.log('data: got %d bytes of data', chunk.length); }) stream.on('end', function() { console.log('there will be no more data.'); stream = null; stream = fs.createReadStream(__dirname + '/AnsolasChill_loop.mp3', { start: 0 }); }); stream.on('readable', function() { var chunk; while (null !== (chunk = stream.read())) { //console.log(i,' readable:', chunk.length); } }); }); app.listen(3000); 

[编辑]

VLC作为播放列表?

刚刚发现这个线程:相关: 是否有一个良好的无线电audiostream解决scheme的node.js?

布拉德告诉我,他使用VLC作为他的基于节点的无线电的来源。

所以我假设他从VLC输出到节点? 如何处理元数据? 有没有办法让他们从VLC吗? 或者至less是否有可能获得当前歌曲ID或其他方式来识别当前正在播放的歌曲? 一个例子将是非常好的。


任何build设性的帮助,欢迎:)