我想在纯Java套接字编程中创建一个语音聊天应用程序。 我使用UDP协议将录制的语音从一个客户端传输到另一个客户端,但是当我通过互联网测试时,语音不会持续发生。 由于我是这个语音聊天应用的新手,有人可能会建议我应该怎么做才能获得持续的声音。
情景是这样的。
客户端1 ------------------------------>>服务器------------------------------------>> Client2
客户端1: 从TargateDataLine读取1KB语音缓冲区,然后创建语音数据包并发送到服务器。
服务器:从client1接收然后发送到client2。
Client2:接收UDP数据包并获取语音数据然后播放。
还面临带宽上下问题。 使用语音聊天的最小带宽应该是多少。 Ex-skype需要30KBPS的上传/下载速度。
提前致谢。
答案 0 :(得分:0)
您应该直接在客户端之间发送数据包。通过服务器中继数据包会增加更多延迟。只需将其从client1发送到client2即可。
答案 1 :(得分:0)
为了在两个或多个用户之间建立对等通信的连接,您需要一个信令服务器以及STUN / TURN服务器。
您可以编写自己的代码,也可以使用现成的后端解决方案(如ConnectyCube)来专注于客户端实现。这里也有一些WebRTC视频聊天code samples供您参考。