请教做过一对多语音通讯的高手给点宝贵意见。见内。非常感谢!!

sususu7878 2005-02-03 10:23:50
现在我可以实现一对一双向语音通讯,数据传递采用UDP CSocket多线程阻塞。我现在希望做成一对多的语音通讯,
服务器端可以同时听见多个客户端的发言。由于有了现成的一对一语音通讯类,所以现在可以采用这样的思路:
服务端为每个发言的客户端建立一个线程、一个UDP CSocket、一个用waveOutOpen建立的wave-out Device,
服务端同时把多个客户端传来的音频数据(CSocket::ReceiveFrom)直接用waveOutWrite输出到音频设备上,让
音频硬件负责混音。这种思路理论上是可行的,不知实际上是否可行呢?
...全文
180 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sususu7878 2005-02-16
  • 打赏
  • 举报
回复
非常感谢 longyii(【MS的底盘,VC的缸,DELPHI。我现在使用的方法是:同时打开多个waveOut device,让每个设备播放各自语音。用这种方法基本上能达成我的要求。另外你的第二个贴子上的FillBuffer应该是混音函数吧,你自己再研究一下,我好像没看懂。
sususu7878 2005-02-16
  • 打赏
  • 举报
回复
谢谢
VOID FillBuffer (INS ins, PBYTE pBuffer, int iNumSamples)
longyii 2005-02-06
  • 打赏
  • 举报
回复
我曾经发贴问过这个问题:
http://community.csdn.net/Expert/topic/3704/3704566.xml?temp=.4292566

不过到目前为止我还不知道用wave族函数实现混音的方法,有种说法是将接收到的多个用户的音频数据进行缓存,然后简单叠加后播放,我没试过,不知道可不可行。
http://community.csdn.net/Expert/topic/3508/3508132.xml?temp=.4584162
sususu8080 2005-02-06
  • 打赏
  • 举报
回复
does anyboby give me a hand ?
sususu7878 2005-02-03
  • 打赏
  • 举报
回复
waveOutWrite是个低端的函数,就算有多个线程同时调用这个函数,以现在的硬件处理速度应该可以应付才对。
而且我的通讯系统应用在局域网内,一般情况下同一时间内只有1至6个客户端发言而已。这样理论上是可以用
waveOutWrite来进行混音吧。
DentistryDoctor 2005-02-03
  • 打赏
  • 举报
回复
waveOutWrite,达不到你的要求,应该考虑DirectShow/DirectSound
sususu7878 2005-02-03
  • 打赏
  • 举报
回复
请告诉我这种方法可不可行?
sususu7878 2005-02-03
  • 打赏
  • 举报
回复
哪位高手发表一下高见?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧