UE4 实时语音通信插件

3 篇文章 0 订阅

第一次写难免磕磕碰碰,也收获了不少。

语音通信插件分为3个部分

1、首先是个UE4插件

2、能够采集音频数据 能够播放音频数据

3、能够进行网络通信

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

没找到什么可以利用的现成音频采集接口,所以使用了Windows 底层的 wavein/out 相关API

我这里使用了2线程分别进行 收/发 或者说采集/播放 功能。嗯,使用的是UE4 的线程实现  继承与FRunnable

现在两个工作线程已经搞定了,剩下的就是需要控制这两个线程的工作状态了,涉及到线程同步的问题。

最理想的方式是 注册事件通信,但似乎在UE4中...总之没用上。于是我这里使用的是static  变量。

好了 现在控制两个工作线程也搞定了。剩下的就是如何开始/结束 双端的通信。在VC 或者MFC 类似的通信程序中,

大都采用事件同步,所有不需要如我这般多做工作,但遗憾的是我是static 同步,所以就需要额外的工作了。

如上图所示:

用户(我这里是Actor ) 只有2个功能:

红线表示开启 广播收发功能 其目的是获取目标端的ip地址,这里 接收广播线程当接收到广播消息后会和自身ip比较 如果相同则继续接收,否则停止接收 关闭线程。而发生广播线程是一直发送消息的,除非自身收到消息.

绿线表示开始 语音会话功能 其目的是开始管理线程来管理会话状态,开启之后即表明可以随时 进行语音通信.

真正的语音通信 是通过 用户通知 管理线程 来进行的

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值