2015-05-31 42 views
5

Tworzę serwer przekazujący dla mojej aplikacji strumieniowej. Zasadniczo, to powinno działać tak:?Jak połączyć tablicę bajtów i strumieniowe przesyłanie dźwięku?

  1. strumienie Client mikrofonu audio do serwera za pośrednictwem gniazd
  2. Serwer pobiera strumień A może zapisuje go gdzieś czasowo (nie jestem pewien)
  3. Klient B pobiera strumień z serwer i odtwarza go.

Zasadniczo mam 1-ci część gotowe (wysyłanie mic audio do serwera):

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

i 3 część zrobić, po prostu odtwarzania dźwięku:

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

teraz nie jestem pewien jak mostkować przychodzącą tablicę bajtów i streaming. Oto mój obecny kod serwera:

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

Wszelkie sugestie? Jak mogę bezpośrednio przesyłać strumieniowo tę tablicę bajtów?

+0

Cześć, nie można znaleźć rozwiązania? –

+0

@BackPacker nah, przestał go szukać dawno temu. –

+0

OK, dziękuję, myślę, że muszę użyć webrtc lub coś w tym stylu. –

Odpowiedz

0

Moduł mediaserver obsługuje tylko strumieniowanie istniejącego audio, a nie "na żywo". To nie zadziała.

Jednym ze sposobów osiągnięcia trzy zadania będzie:

  1. https://www.npmjs.com/package/microphone czytać audio mikrofonu jako strumień bajtów.
  2. http://binaryjs.com/ do obsługi przesyłania strumienia bajtów przez websockets do serwera, a następnie wysyłania do klienta. Jeśli masz skonfigurowane dwie oddzielne ścieżki, jedna do wysyłania danych, druga do odbierania. Wyślij dane z jednego strumienia do drugiego.
  3. Zastosowanie https://github.com/TooTallNate/node-speaker zagrać przychodzącego strumienia danych PCM na Client B
+0

Ale już mam odczytaną część wejścia mikrofonu. I nie muszę używać modułu 'mediaserver'. Miałem nadzieję, że istnieje moduł specjalnie do tego celu. Część 1 i część 2 to android, a nie nodejs. –