2009-06-13 120 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