dou_bi_ 2014-11-21 07:34 采纳率: 100%
浏览 7236
已采纳

c#将客户端发来的数据流实时转发给另一个客户端 服务器数据缓冲区的建立问题

我想要实现两部安卓客户端的实时语音通讯,安卓客户端都在内网,因此需要一外网pc做数据的中转服务器,安卓语音发送端通过audiotrack录制PCM音频数据并实时发送到服务器,服务器接收数据并不断读入一个缓冲区,开启另一个线程循环读取缓冲区的数据同时将数据发送到另一个安卓客户端,问题就在于服务器的缓冲区要怎么做?怎么保证缓冲区的数据同时被两个线程操作时的有序稳定 求大神指教,假设网络良好,不考虑网络波动带来的数据处理问题。

  • 写回答

10条回答 默认 最新

  • aaa45612342008 2014-11-21 08:53
    关注

    关键是语音流. 对队列也比较赞同. 不过考虑并发多线程问题. 缓冲区 内部划分应该分: 发送区, 资源区, 接受区. 对消息进行编号. 例如2s一个语音段, 发送成功就成功, 不然丢弃. 编号之后, 可以同时并发发送. 发送区进行资源锁定, 进入server 资源区后解锁. 接受区也是一样的, 维护一个顺序索引. 按顺序发送资源区给接收端. 如果丢包你, 怎么处理. 就是语音丢失闹 . 后面再有也不要你. 锁定之后就好. 其实生产--消费者思路. 至于实现, 如何并发, 并发 ,对外封装调用.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺