3

我想知道是否有办法通过 LAN 传输声音。我可以让客户端应用程序连接到服务器应用程序,然后从中接收声音流。我确信它可以完成,只是不知道从哪里开始。有什么建议么?我想用 c# 来做这件事。

我不是要任何人为我写它,只是一些你可能知道的想法或技巧,只是你可能有的参考或建议。

4

5 回答 5

3

另一种选择可能是拥有自己的 Shoutcast 服务器并在使用ShoutcastStream 类捕获音频后在客户端播放该音频

于 2009-06-14T09:22:40.740 回答
1

您可能想要实现RTSP,即标准的“实时流协议”。根据MSDN,Silverlight 支持它(以及几种 Windows Media 音频格式)。然而,最知名的 RTSP 开源库是C++ ——也许您可以从您的 C# 代码中调用它们?

于 2009-06-13T23:36:39.633 回答
1

我相信您可以在客户端上使用 Windows 媒体播放器。

我们使用 winmm.dll 在我们的一个应用程序中播放一些音乐。而且由于媒体播放器支持流式传输,您可能会通过一些摆弄来解决您的问题。

于 2009-06-14T09:01:08.653 回答
1

虽然不是 C#,但这是一个选择吗?Netcat、mpg123 和 rawplay 创建了一个解决方案。本文的作者将音频从一台机器传送到另一台机器。

$(audioclient1):~$ nc -l -p 2345 | rawplay
$(audioserver):~$ mpg123 -s *.mp3 | nc (audioclient1) 2345 

在文章的后面,他展示了如何使用命名管道,为他的 LAN 上的 6 台机器提供音频。

“使用和滥用带有音频数据的管道” http://www.debian-administration.org/articles/145

于 2010-01-02T17:46:04.487 回答
0

这不是 ac# 解决方案,但可能有助于决定使用什么。http://pulseaudio.org/现在在一些 Linux 发行版中使用,您也可以在 Windows 上安装它。

来自http://pulseaudio.org/wiki/WikiStart#Whatisit

PulseAudio 是 POSIX 和 Win32 系统的声音服务器。声音服务器基本上是您的声音应用程序的代理。它允许您在声音数据在应用程序和硬件之间传递时对其进行高级操作。使用声音服务器可以轻松实现将音频传输到另一台机器、更改样本格式或通道数以及将多个声音混合为一个等操作。

PulseAudio 已经在 Linux、Solaris、FreeBSD、NetBSD、Windows 2000 和 Windows XP 上进行了测试。它还应该在所有其他 POSIX 和 Windows 系统上运行,但可能需要新的后端来处理他们的声音系统。

根据您的情况可能是一个不错的选择...

于 2009-06-14T21:45:41.390 回答