簡體   English   中英

Java語音聊天

[英]Java voice chat

我想用純 Java 套接字編程創建一個語音聊天應用程序。 我使用 UDP 協議將錄制的語音從一個客戶端傳輸到另一個客戶端,但是當我通過互聯網對其進行測試時,語音並沒有連續傳來。 由於我是這個語音聊天應用程序的新手,有人可能會建議我應該怎么做才能獲得連續的語音。

場景是這樣的。

語音聊天流程,因為這僅顯示了一種溝通方式-

數據流

Client1------------------------------>> 服務器---------------- -------------------->>Client2

Client1:從 TargateDataLine 讀取 1KB 語音緩沖區,然后創建一個語音包並發送到服務器。

服務器:從client1接收然后發送到client2。

Client2:接收UDP數據包並獲取語音數據然后播放。


還面臨着帶寬上下的問題。 使用語音聊天的最小帶寬應該是多少。 Ex-Skype 需要 30KBPS 的上傳/下載速度。

提前致謝。

您應該直接在客戶端之間發送數據包。 通過服務器中繼數據包將增加更多延遲。 只需將其從client1發送到client2。

為了在兩個或多個用戶之間建立用於點對點通信的連接,您需要一個信令服務器以及STUN / TURN服務器。

您可以編寫自己的代碼,也可以使用現成的后端解決方案(如ConnectyCube),並專注於客戶端實現。 以下是一些WebRTC視頻聊天代碼示例,供您參考。

答案很簡單,您應該使用 tcp 協議。 因為 udp 會發送數據包,但不能確保目標已收到該數據包。 但是 tcp 協議確保了這一點,您將獲得穩定的連接,但會降低數據傳輸的速度。 tcp 與 udp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM