2015-05-31 17 views
5

Ich erstelle einen Relay-Server für meine Streaming-App. Grundsätzlich sollte es so funktionieren:Wie Bridge Array und Audio-Streaming zu überbrücken?

  1. Client A-Streams Mikrofon Audio-Server über Sockets
  2. Server ein bekommt Strom und vielleicht speichert sie irgendwo vorübergehend (nicht sicher)
  3. Client B erhält einen Strom von Server und spielt es ab.

Grundsätzlich habe ich erste Teil getan (mic Audio-Server zu senden):

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

und 3. Teil getan, einfach Audio-Wiedergabe:

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

Jetzt bin ich nicht sicher, wie man ankommendes Byte-Array und Streaming überbrückt. Hier ist mein aktueller Server-Code:

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); 
    }); 
} 

Irgendwelche Vorschläge? Wie kann ich dieses Byte-Array direkt streamen?

+0

Hallo, haben Sie die Lösung finden zu spielen? –

+0

@BackPacker nah, aufgehört, es vor langer Zeit zu suchen. –

+0

Ok, danke, ich denke, ich muss webrtc oder so etwas verwenden –

Antwort

0

Das Modul mediaserver unterstützt nur das Streaming eines vorhandenen Audiomaterials anstelle eines "Live" -Streams. Dies wird nicht funktionieren.

Ein Weg, um zu erreichen die drei Aufgaben sein würden:

  1. https://www.npmjs.com/package/microphone das Mikrofon Audio als Byte-Stream zu lesen.
  2. http://binaryjs.com/, um den Byte-Stream über Websockets an den Server zu übertragen und dann an den Client zu senden. Wenn Sie zwei getrennte Pfade eingerichtet haben, einen zum Senden der Daten, einen zum Empfangen. Senden Sie die Daten von einem Stream zum anderen.
  3. Verwenden https://github.com/TooTallNate/node-speaker den eingehenden PCM-Datenstrom auf Client B
+0

Aber ich habe bereits das Lesen von Mikrofon Eingang getan. Und ich muss das 'mediaserver' Modul nicht benutzen. Ich hatte gehofft, dass es dafür ein Modul gibt. Teil 1 & Teil 2 ist auch android, nicht nodejs. –