2015-05-31 2 views
5

Я создаю сервер ретрансляции для своего потокового приложения. В принципе, он должен работать так:Как объединить массив байтов и потоковое аудио?

  1. Client A потоки микрофон аудио к серверу через сокеты
  2. Сервер А получает поток и, возможно, хранит его где-то временно (не уверен)
  3. Клиент B получает поток из сервер и воспроизводит его.

В принципе, у меня есть первая часть сделано (отправка микрофонного аудио на сервере):

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

и 3-й части сделано, просто играть аудио:

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

Теперь я не уверен, как свести входящий массив байтов и потоковой передачи. Вот мой текущий код сервера:

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

Любые предложения? Как я могу напрямую передать этот массив байтов?

+0

Привет, вы нашли решение? –

+0

@BackPacker nah, прекратил искать его давно. –

+0

Хорошо, спасибо, я думаю, что мне нужно использовать webrtc или что-то в этом роде –

ответ

0

Модуль mediaserver поддерживает только потоковое аудио, а не «живой» поток. Это не сработает.

Одним из способов достижения трех задач будет:

  1. https://www.npmjs.com/package/microphone читать аудио микрофонный как поток байтов.
  2. http://binaryjs.com/ для обработки передачи байтового потока через веб-порты на сервер и последующей отправки клиенту. Если у вас есть два отдельных пути, один для отправки данных, один для приема. Отправляйте данные из одного потока в другой.
  3. Использование https://github.com/TooTallNate/node-speaker для воспроизведения входящего потока данных PCM на клиенте B
+0

Но у меня уже есть чтение микрофонной части. И мне не нужно использовать модуль «mediaserver». Я надеялся, что для этого есть модуль. Кроме того, часть 1 и часть 2 - андроид, а не nodejs. –

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