我想用纯java套接字编程创建一个语音聊天应用程序。 我使用 UDP 协议(protocol)将录制的语音从一个客户端传输到另一个客户端,但是当我通过互联网测试它时,语音不会连续出现。 由于我是这个语音聊天应用程序的新手,有人可能会建议我应该做什么才能获得连续的语音。
场景是这样的。
语音聊天流程,因为这仅显示一种通信方式 -
数据流
客户端1------------------------------>>服务器------------- ----------------------->>客户端2
客户端1: 从 TargateDataLine 读取 1KB 语音缓冲区,然后创建语音数据包并发送给服务器。
服务器:从client1接收,然后发送给client2。
Client2:接收UDP数据包,获取语音数据并播放。
<小时/>还面临着带宽上下的问题。 使用语音聊天的最小带宽应该是多少。 Ex- Skype 需要 30KBPS 的加载/下载速度。
提前致谢。
最佳答案
为了在两个或多个用户之间建立连接以进行点对点通信,您需要一个信令服务器以及 STUN/TURN 服务器。
您可以编写自己的代码或使用 ConnectyCube 等现成的后端解决方案,并专注于客户端实现。以下是一些WebRTC视频聊天code samples也供大家引用。
关于Java语音聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25763386/