2017-09-27 168 views
0

對於我的一個業餘愛好項目,我期待實現一個組語音聊天功能。非常簡單:我正在運行多個客戶端(移動設備)可以連接到的服務器。某些客戶處於同一「羣組」中,我希望他們具有音頻聊天功能。移動組語音聊天服務器

我已經設置了一個客戶端可以連接到C#的UDP服務器客戶端。我通過服務器在客戶端之間成功實現了音頻分配,並且基本功能運行良好。

我不確定我是否正在用這種方法走向正確的方向。例如,我堅持混合不同聲音的實現(兩個人同時說話,另一個人同時聽兩個人)。我真的不知道如何將兩種聲音混合在一起,併爲不同的客戶產生不同的輸出 - 上面提到的例子:兩個人說話時應該只接收另一個人的輸入,而不說話的人應該接收另一個人的混音兩個說話。

什麼是最好的服務器邊結構?我應該去完全不同的方向,並與SIP合作嗎?我很難在網上找到適合這個問題的資源,而且我真的陷入了困境。

感謝您的幫助!

回答

1

讓我建議在您的應用程序中使用標準。如果(正如我強烈建議的那樣)你的應用程序是一個Web應用程序,WebRTC使你的工作變得更容易。請WebRTC samples一些想法,我肯定會對你有所啓發,包括multiple peer connections

看到,如果你是在集團電話只關心,你可以安裝一個PBX服務器具有強大的集會議功能的星號。您可以在客戶端的WebRTC之上使用SIP庫(例如sip.js,sipml5),通過SIP連接星號並獲得會議服務。這聽起來令人生畏,但調用會議室的代碼可以減少到幾行,並且星號可以很容易地安裝在真機中的linux系統中,也可以安裝在虛擬系統或碼頭集裝箱中。

如果您更喜歡胖客戶端,我建議使用SIP庫作爲PJSIP(順便說一下,這是新的用於星號的SIP堆棧的基礎)。專有解決方案在未來推動,而標準推動。

+0

感謝您的幫助!我知道很久以前我問過我的問題,但直到今天,我還沒有真正有時間在這個項目上工作。我會嘗試你的建議,但整個話題似乎壓倒一切,因爲我仍然不確定在哪裏實現我自己的服務器端邏輯。把它看成是不和諧或團隊協調......我想要那個功能。我希望現在這將是正確的做法。再次感謝 – marco56