Silverlight 4.0上的VOIP功能(最多5个用户的实时语音流)?

时间:2009-12-07 15:14:28

标签: c# .net silverlight silverlight-4.0 audio-streaming

由于SL 4.0已获得视频和麦克风支持......

对于基于Web的应用程序,通过Silverlight 4.0提供VOIP功能(最多5个用户的实时语音流)是否可行?

所有相关的挑战是什么?

3 个答案:

答案 0 :(得分:3)

最近以CSpeex的形式提供了解决方案的一部分,这是旧版Speex(c.2003)的旧Java端口的端口。我玩过它,它肯定有效(例如,10倍或更好的压缩)。但是,您仍然需要将这些数据包流式传输到某个服务器,并且似乎没有任何Silverlight实现的RTP / RTSP / SIP或RTMP,所以此时您必须推出自己的网络流容器支持。此外,除非您想让所有用户都佩戴耳机,否则您将需要消除声学回声,而这又是另一个球赛。有一些非常好的开源实现(例如,speexdsp),但它们都是直接的C,并且很难移植。所以你也在那里。在接下来的几个月/几年里,所有这些都可能会得到一些开源答案,但这些部分还没有到位。

答案 1 :(得分:1)

很大程度上取决于新SL4话筒/视频支持的实施方式。您需要包含能够

的代码
  1. 将语音编码为字节流
  2. 将字节流发送给对方/各方
  3. 将字节流接收/解码为音频信号
  4. 我相信SL4有一些COM支持计划,所以如果有任何开源(或付费)非托管C ++ VOIP或音频编码库,你可能会挂钩它们。

答案 2 :(得分:1)

可以使用多个库。例如:conaito,ABTO llc,IndependentSoft SIP,将与Silverlight 4.0一起使用。 Conaito和ABTO使用java脚本链接到他们的Web客户端,而IndependentSoft有一个托管程序集。

Conaito和ABTO很好,但由于它们是ocx并使用COM dll,它们的库有点过时,这可能会破坏你的部署。

IndedenpentSoft更易于部署,因为它是托管代码,但需要执行相当多的工作,因为它基本上提供了传输层,就这样,您必须指定编解码器和trnasport协议。

您需要考虑的主要问题是您的防火墙要求。我的建议是寻找一个使用STUN,TURN尤其是ICE的托管程序集。