2015-05-31 20 views
5

Sto creando un server relay per la mia app di streaming. In sostanza, dovrebbe funzionare in questo modo:?Come collegare l'array di byte e lo streaming audio?

  1. cliente una flussi microfono audio al server tramite prese
  2. Server un ottiene flusso e forse lo memorizza da qualche parte temporaneamente (non sono sicuro)
  3. cliente B riceve un flusso da server e gioca.

Fondamentalmente, ho fatto prima parte (l'invio di audio microfono per server):

while(isStreaming) 
{ 
    minBufSize = recorder.read(buffer, 0, buffer.length); 
    mSocket.emit("stream", Arrays.toString(buffer)); 
} 

E 3a parte fatto, semplicemente la riproduzione di audio:

mediaplayer.reset(); 
mediaplayer.setDataSource("http://192.168.1.2:1337/stream"); 
mediaplayer.prepare(); 
mediaplayer.start(); 

Ora io non sono sicuro come collegare il byte array in entrata e lo streaming. Ecco il mio attuale codice server:

var ms = require('mediaserver'); 
// from server to Client B 
exports.letsStream = function(req, res, next) { 
    ms.pipe(req, res, "sample_song_music_file.mp3"); 
}; 

// from Client A to server 
exports.handleSocketConnection = function(socket) 
{ 
    console.log("connected"); 
    socket.on('stream', function(data) 
    { 
     var bytes = JSON.parse(data); 
     console.log("GETTING STREAM:" + bytes); 
    }); 
} 

Qualche suggerimento? Come posso eseguire lo streaming diretto di tale array di byte?

+0

Ciao, hai trovato la soluzione? –

+0

@BackPacker nah, smesso di cercarlo molto tempo fa. –

+0

Ok, grazie, penso di dover usare webrtc o qualcosa di simile –

risposta

0

Il modulo mediaserver supporta solo lo streaming di un audio esistente, piuttosto che un flusso "live". Questo non funzionerà.

Un modo per raggiungere i tre compiti sarebbero:

  1. https://www.npmjs.com/package/microphone per leggere l'audio del microfono come un flusso di byte.
  2. http://binaryjs.com/ per gestire la trasmissione del flusso di byte tramite web socket al server e quindi l'invio al client. Se hai impostato due percorsi separati, uno per l'invio dei dati, uno per la ricezione. Invia i dati da uno stream all'altro.
  3. Usa https://github.com/TooTallNate/node-speaker per riprodurre il flusso di dati PCM in ingresso sul client B
+0

Ma ho già letto la parte dell'input del microfono. E non devo usare il modulo 'mediaserver'. Speravo che esistesse un modulo appositamente per questo. Inoltre, la parte 1 e la parte 2 sono androide, non nodejs. –

Problemi correlati