我有一个用Java编写的webSockets / NanoHTTP服务器应用程序。 Java应用程序从即时转换为mp3的麦克风录制实时音频,并通过任何/多个设备/浏览器的websockets远程启动/停止工作。
while(bRunThread) {
int cnt = targetRecordLine.read(tempBuffer, 0, tempBuffer.length);
if(cnt > 0) {
if(bRecording) {
int bytesToTransfer = Math.min(buffer.length, tempBuffer.length);
int bytesWritten;
int currentPcmPosition = 0;
while(0 < (bytesWritten = encoder.encodeBuffer(tempBuffer, currentPcmPosition,
bytesToTransfer, buffer))) {
currentPcmPosition += bytesToTransfer;
bytesToTransfer = Math.min(buffer.length, tempBuffer.length
- currentPcmPosition);
fos.write(buffer, 0, bytesWritten);
}
}
}
}
我想以最小的延迟将mp3数据发送到监听浏览器。客户端Websockets都是在javascript中完成的。这将只在本地局域网上,但我想最大限度地减少带宽使用。我不能使用webRTC,因为旧设备不支持webRTC但支持WebSockets。
我很欣赏一些演示代码,如果可能的话,可以通过websockets解码/播放mp3数据块。
注意:如果这样做更难,我不必发送mp3数据。我可以在压缩之前获取数据。