我正在寻找一个用于会议a / v流式传输到服务器的库,该服务器可以向所有其他客户端进行多播。我看过SIP和openh323,两者看起来都太专门用于voip电话了。
我希望该应用程序是一个跨平台的Silverlight应用程序(mac和windows),所以我认为我不能使用DirectSound,对吧?
提前致谢。
答案 0 :(得分:3)
您可能在问题中混合苹果和橘子。 DirectSound提供访问声卡的API; H.323和SIP是发出呼叫的标准。
Silverlight 4本身提供了几个与DirectSound大致相同的简化API,因此您可以访问麦克风,声卡和网络摄像头。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ff602282(VS.95).aspx。
但是一旦你有了声音,你仍然需要对它进行编码,传输,混合,分发,然后接收它。这就是它变得复杂的地方。 Flash本身支持所有这些; Silverlight没有。目前用于实现此目的的最佳开源实现由SocketCoder组合在一起,可在CodePlex上使用,但它使用专有信令/流媒体协议,专有且效率极低的视频编解码器和专有媒体服务器。 / p>
据我所知,在Silverlight中执行所需操作的最佳选择是StreamCoders提供的闭源解决方案。它不是开源的,但它支持一套合理的开放标准,这意味着您可能能够使用第三方开源媒体服务器。当然,您需要进行测试以确保它是您所需要的。
或者,您可以尝试将任何各种开源解决方案移植到C#。我用Speex预处理器做到了这一点:它很复杂,但并不像你想象的那么困难。您可能会使用openH323和各种基于C的编解码器做类似的事情。您甚至可以尝试通过FluorineFx(http://www.fluorinefx.com/)修改Silverlight RTMP实现来完成您需要做的事情。当然,这些都不是简单的。