1. 程式人生 > >UE4 實時語音通訊外掛

UE4 實時語音通訊外掛

第一次寫難免磕磕碰碰,也收穫了不少。

語音通訊外掛分為3個部分

1、首先是個UE4外掛

2、能夠採集音訊資料 能夠播放音訊資料

3、能夠進行網路通訊

-------------

沒找到什麼可以利用的現成音訊採集介面,所以使用了Windows 底層的 wavein/out 相關API

我這裡使用了2執行緒分別進行 收/發 或者說採集/播放 功能。嗯,使用的是UE4 的執行緒實現  繼承與FRunnable

現在兩個工作執行緒已經搞定了,剩下的就是需要控制這兩個執行緒的工作狀態了,涉及到執行緒同步的問題。

最理想的方式是 註冊事件通訊,但似乎在UE4中...總之沒用上。於是我這裡使用的是static  變數。

好了 現在控制兩個工作執行緒也搞定了。剩下的就是如何開始/結束 雙端的通訊。在VC 或者MFC 類似的通訊程式中,

大都採用事件同步,所有不需要如我這般多做工作,但遺憾的是我是static 同步,所以就需要額外的工作了。

如上圖所示:

使用者(我這裡是Actor ) 只有2個功能:

紅線表示開啟 廣播收發功能 其目的是獲取目標端的ip地址,這裡 接收廣播執行緒當接收到廣播訊息後會和自身ip比較 如果相同則繼續接收,否則停止接收 關閉執行緒。而發生廣播執行緒是一直髮送訊息的,除非自身收到訊息.

綠線表示開始 語音會話功能 其目的是開始管理執行緒來管理會話狀態,開啟之後即表明可以隨時 進行語音通訊.

真正的語音通訊 是通過 使用者通知 管理執行緒 來進行的