2009-06-13 70 views
3

我想知道是否有方法通过局域网传输声音。我可以让客户端应用程序连接到服务器应用程序,然后接收来自它的声音流。我确信它可以完成,只是不知道从哪里开始。有什么建议么?我正在寻找与c#做到这一点。通过局域网发送声音或流声音

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

回答

0

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

1

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

我们使用winmm.dll在我们的一个应用程序中播放一些音乐。而且由于媒体播放器支持流媒体,你可能可以通过一些小手段来解决你的问题。

0

捕获之后这不是一个C#解决方案,但可以使得在使用什么样的决定帮助。现在在几个linux发行版中使用http://pulseaudio.org/,您也可以在Windows上安装它。

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

的PulseAudio是POSIX和Win32系统完善的服务器。声音服务器基本上是您的声音应用程序的代理。它允许您在声音数据通过应用程序和硬件之间进行高级操作。诸如将音频传输到不同的机器,改变采样格式或通道数量以及将几个声音混合成一个声音等都可以使用声音服务器轻松实现。

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

可能会根据您的情况一个很好的选择...

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