【发布时间】:2018-07-29 22:55:32
【问题描述】:
我想设计一个客户端/服务器系统,其中客户端从麦克风录制音频并将其流式传输到服务器以进行进一步处理。我打算使用 gRPC 和 NodeJS 客户端(我无法控制服务器)。
但我真的不知道该怎么做。我发现 npm 包“microphone-stream”似乎完全符合我的需求(https://www.npmjs.com/package/microphone-stream),因为我可以从麦克风录制并分别获取每个缓冲区以便将它们发送到服务器。 不幸的是,这个包使用 getUserMedia API,这意味着我不能在普通的 NodeJS 中使用它。
所以我发现了其他不使用 getUserMedia 的 npm 包(node-microphone 和 mic),但它们不允许轻松检索流上的缓冲区(或者我只是不知道该怎么做)。例如,我可以在“mic”页面上看到(https://www.npmjs.com/package/mic):
micInputStream.on('data', function(data) {
console.log("Recieved Input Stream: " + data.length);
});
我应该将“数据”解析为整数 (int32) 以使 gRPC 流式传输成为可能吗?我怎样才能做到这一点?
谢谢!
【问题讨论】:
-
我不太确定,但在我看来,“on data”事件可能正在接收字节数组或字符串。您应该能够使用
bytes类型流式传输此类信息。请参阅 developers.google.com/protocol-buffers/docs/proto3#scalar - 底部条目是bytes。 -
谢谢!你给了我答案的开始。请参阅下面的完整答案。