NodeJS на основе радио (без ShoutCast)
Мне нравится создавать радиостанции, основанные на NodeJS, в то время какне используя ShoutCast.
Плейлист на основе NodeJSВ настоящее время мне удалось передать аудио файл в браузер, но я не знаю,как создать серверный плейлист который постоянно "проигрывает" текущую песню и перезапускает ее после достижения конца.
вот мой текущий подход:
'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 как плейлист?Только что нашел эту тему:Есть ли хорошее радио-подобное решение для потоковой передачи аудио для node.js?
Брэд сказал мне, что он использует VLC в качестве источника для своего радио на основе узла.
Итак, я предполагаю, что он передает данные от VLC к Node? Как бороться с метаданными? Есть ли способ получить их из VLC? Или, по крайней мере, возможно ли получить идентификатор текущей песни или каким-либо другим способом идентифицировать текущую воспроизводимую песню? Пример был бы очень хорош.
Любая конструктивная помощь приветствуется :)