通过局域网发送声音或流媒体声音

3
我想知道是否有一种方法可以通过局域网流式传输声音。我可以让客户端应用程序连接到服务器应用程序,然后从中接收声音流。我相信这是可以实现的,只是不确定从哪里开始。有什么建议吗?我打算使用c#完成这个项目。
我并不是要求任何人为我编写代码,只是想听听你们可能知道的一些想法或技巧,或者参考或建议。
5个回答

3

+1 这似乎是目前最好的选择,我现在朝这个方向前进。 - Gabe

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

1

您可能想要实现RTSP,这是标准的“实时流传输协议”。根据MSDN的说法,Silverlight在某种程度上支持它(以及几种Windows Media音频格式)。然而,最著名的开源库C++用于RTSP -- 或许您可以从C#代码中调用它们?


1

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

我们在其中一个应用程序中使用winmm.dll来播放一些音乐。由于媒体播放器支持流媒体,你可能只需要稍微调整一下就能解决你的问题。


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系统上运行,但可能需要新的后端来处理它们的声音系统。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接