一个可以同时与多人语聊的客户端,有这么一个问题总想不通,首先,我要多人同时聊天,那么同时接收N个人发给我音频,但问题来了,如果我用一个缓冲区收,收一个在缓冲区后续一个,那个问题就来了,我同N个人聊一分钟,那么我这边不就要播N*1分钟?那么我是不是每个接收得新开一个线程?每个线程都得分配独立的缓冲?每个线程都各自放自己的?但这样不知会不会冲突?即会不会开一个后,以后的报音频设备占用,或者有更麻烦的问题?反正后面那个想法都不知行不行得通?还请高手指点?或者是否已经有别的很好的解决方法?望相告,不胜感激.

解决方案 »

  1.   

    http://www.codeguru.com/Cpp/G-M/multimedia/audio/article.php/c4725
      

  2.   

    不是用DirectSound,也没用混音.
    这个混音的问题我也想过,但问题更大,主要是我用UDP做P2P,那么N个人中根本无法确定谁的那段音频说得早一些,比如说:A先说着,B突然加入,那B那段音频将从那个地方开始与A混呢?而且此时A那段早就载入了设备中播放着了.
    有没有人告诉我一般是用什么方法的?大家可以不用考虑我提到的方法,只要有好方法,我之前写的推倒从来也没什么大不了的.这方面我是有足够耐性,不厌其烦的.