我想知道是否有办法通过局域网传输声音。我是否可以将客户端应用程序连接到服务器应用程序,然后从中接收声音流。我确信它可以做到,只是不确定从哪里开始。有什么建议?我希望用c#来做这件事。
我不是要求任何人为我写的,只是一些关于你可能知道的想法或技巧,只是你可能有的参考或建议。
答案 0 :(得分:3)
另一种选择可能是拥有your own Shoutcast server并在使用ShoutcastStream Class
捕获后在客户端播放该音频答案 1 :(得分:1)
我相信你可以在客户端上使用Windows媒体播放器。
我们使用winmm.dll在我们的某个应用程序中播放一些音乐。而且,由于媒体播放器支持流式传输,您可以通过一些摆弄来解决您的问题。
答案 2 :(得分:1)
虽然不是C#,但这是一个选择吗? Netcat,mpg123和rawplay创建了一个解决方案。本文作者提供从一台机器到另一台机器的音频。
$(audioclient1):~$ nc -l -p 2345 | rawplay
$(audioserver):~$ mpg123 -s *.mp3 | nc (audioclient1) 2345
在本文的后面,他展示了如何使用命名管道,为其局域网上的6台机器提供音频。
“使用和滥用带有音频数据的管道” http://www.debian-administration.org/articles/145
答案 3 :(得分:0)
您可能希望实施标准的“实时流协议”RTSP。根据{{3}},Silverlight支持它(以及几种Windows Media Audio格式)。但是,最着名的RTSP开源库是MSDN - 也许你可以用C#代码调用它们?
答案 4 :(得分:0)
这不是c#解决方案,但可能有助于决定使用什么。 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系统上运行,但可能需要新的后端来处理它们的声音系统。
根据您的情况,可能是一个不错的选择...