如何桥接字节数组和audiostream?

我正在为stream式应用程序创build一个中继服务器。 基本上,它应该像这样工作:

  1. 客户端A通过套接字将麦克风audio传输到服务器
  2. 服务器获取stream,也许暂时存储在某个地方?(不知道)
  3. 客户端B从服务器获取stream并播放它。

基本上,我完成了第一部分(发送麦克风audio到服务器):

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

第三部分完成,只是播放audio:

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

现在我不知道如何桥接传入的字节数组和stream。 这是我目前的服务器代码:

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

有什么build议么? 我怎样才能直接stream式传输字节数组?

mediaserver模块仅支持stream式传输现有audio,而不支持“实时”stream式传输。 这是行不通的。

实现这三项任务的一个方法是:

  1. https://www.npmjs.com/package/microphone读取麦克风audio作为字节stream。
  2. http://binaryjs.com/处理通过websockets传输字节stream到服务器,然后发送到客户端。 如果你有两个单独的pathbuild立,一个用于发送数据,一个用于接收。 将数据从一个stream发送到另一个。
  3. 使用https://github.com/TooTallNate/node-speaker在客户端B上播放传入的PCM数据stream