语音会议——如何让更多人通话?

发布于 2024-08-20 18:28:12 字数 284 浏览 7 评论 0原文

首先,我只是一个业余爱好者,所以如果这是一个愚蠢的问题或者我太天真,我很抱歉。 (这也意味着我无法购买昂贵的库)

情况是这样的:我正在 C#.NET 中构建一个简单的语音聊天应用程序(类似于 Ventrilo 或 TeamSpeak,但仅适用于大约 15 或 20 人,并以 100Mbps 运行)局域网)。我有工作服务器(为每个客户端生成线程)和客户端应用程序,使用 UDP 进行连接,使用 DirectSound 捕获和播放声音。我可以进行“一对一”通话,但我无法弄清楚最重要的事情之一:

如何让两个以上的人参与对话?

first of all, I'm just a hobbyist, so I'm sorry if this is dumb question or if I'm being too naive. (It also means that I can't buy expensive libraries)

This is the situation: I'm building a simple voice chat application in C#.NET (something like Ventrilo or TeamSpeak but only for about 15 or 20 people, and running on 100Mbps LAN). I have working server (spawning thread for each client) and client application using UDP for connection and DirectSound for capturing and playing the sound. I can make "1 on 1" calls but I can't figure out one of the most important things:

How do i have more than two people in the conversation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

摇划花蜜的午后 2024-08-27 18:28:12

您需要一些集中的位置通过多播将数据包发回,否则您需要一种分散的方法,其中每个客户端都连接到其他每个客户端,并且每个客户端都托管多播。您想要避免的是让机器将其数据转发到所有其他机器,这将导致向每台机器发送消息的时间为 O(n)(并且 I/O 很慢!)。

无论哪种情况,您最终都会遇到同样的问题:如何组合音频流。实现此目的的一种简单机制是在将信号发送回(从网络端口或扬声器发送)之前按位或将信号组合在一起,但这假设您可以访问非压缩且合理同步的流。

You need some centralized place to send the packets back out via a multicast, or else you need a decentralized approach where every client is connected to every other client, and each client is hosting a multicast. What you want to avoid is making the machines forward out their data to every other machine, which would result in O(n) time to send a message to each machine (and I/O is slow!).

In either scenario, you end up with the same problem: how to combine the audio streams. One simple mechanism to accomplish this is to bitwise-or the signals together before you send them back out (either out the network port, or out to your speakers), but this assumes you have access to non-compressed and reasonably-synchronized streams.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文