2015-01-03 1 views
1

Я использую binary.js (http://binaryjs.com/), чтобы передать mp3-файл нескольким клиентам.node.js - доля синхронизации потока mp3 нескольким клиентам

Сервер только начинает передавать mp3, и я хочу достичь того, что когда клиент подключается, он начинает транслировать поток не с самого начала, а с определенного момента времени, в котором в настоящее время находится воспроизведение. Некоторое синхронизированное воспроизведение для всех клиентов.

Сервер:

var BinaryServer = require('binaryjs').BinaryServer; 
var fs = require('fs'); 
var server = require('http').createServer(handler); 

server.listen(9000); 

function handler (req, res) { 
    fs.readFile(__dirname + '/index.html', 
    function (err, data) { 
    if (err) { 
     res.writeHead(500); 
     return res.end('Error loading index.html'); 
    } 
    res.writeHead(200); 
    res.end(data); 
    }); 
} 

var binaryserver = BinaryServer({server: server}); 
binaryserver.on('connection', function (client) { 
    var trackStream = fs.createReadStream(__dirname + '/longAudio.mp3'); 
    client.send(trackStream); 
}); 

Клиент:

var client = new BinaryClient('ws://localhost:9000'); 
client.on('stream', function (stream, meta) { 
    var parts = []; 
    stream.on('data', function(data){ 
    parts.push(data); 
    }); 
    stream.on('end', function() { 
    var audio = document.createElement('audio'); 
    audio.src = (window.URL || window.webkitURL).createObjectURL(new Blob(parts)); 
    audio.controls = 'controls'; 
    document.body.appendChild(audio); 
    }); 
}); 

Есть ли способ осуществить это?

ответ

0

Вы можете проверить это question. Он очень похож на вашу проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^