桌面应用程序.net中的video通话

我正在开发一个wpf应用程序,假设它具有video通话function。 所以我打算让Skype为我提供解决方案。

我正在使用Skype4COM库来做到这一点。 我在我的应用程序中收到了Skype的所有朋友,我可以打电话给我的朋友,甚至可以进行video通话,但我无法控制流媒体。 video正在Skype窗口中显示,我想在我的应用程序中显示它,就像我的应用程序的一部分。

我甚至不知道应该使用哪个控件来处理video流。

如果还有另一种更好的方式或自由方式在WPF应用程序中添加video呼叫。 我准备改变我的偏好。

我之前曾计划使用Web浏览器控制并使用WebRTC,但不支持IE,并且认为没有来自Mozilla和Chrome的Web浏览器控件。

video会议的实施并不容易。 您必须首先查看SIP或XMPP等信令协议,它将提供基础设施来维护“朋友”列表以及他们是在线还是离线。 信号基础设施还可以让您拨打电话并在接到电话时提醒您。 然后是在两个端点之间实际流动video/音频的问题。 没有一种解决方案可以插入您的应用程序。

您可以查看Google的Libjingle或ConferenceXP作为起点。

要建立video会议,您需要以下信息:

  1. 你能打电话给谁? 这是你的好友列表。 您需要一种机制来将朋友添加到您的列表中,并确保您只能添加愿意与您通信的朋友

  2. 你如何与朋友建立沟通渠道? 例如,他们的IP地址是什么,它们是否可以支持特定的video编解码器等等。

  3. 一旦你建立了与朋友沟通的方式,就会有接收音频和video信息并以正确的时间显示它的问题。

对于第1点和第2点,您需要所谓的信令和存在协议。 SIP和XMPP是两种非常流行的开放协议。

对于点[3],您将看到像RTP这样的协议。

你可以谷歌SIP,XMPP和RTP。 你会收到各种各样的文献。 查看RFC文档以获取确切信息,他们可能会有点神秘。

Libjingle是一个用C ++编写的库实现XMPP和RTP ConferenceXP是C#中的一个RTP实现,带有一些基本的信号,但我认为你可以从这些例子开始,而不是真正详细介绍。

您可能或可能无法控制该屏幕。 如果skype决定与您分享该级别的控制权。

但看起来skype4com库已经走到了尽头。 它很快就会停止工作。 🙁

http://gigaom.com/2013/07/13/skype-says-it-will-kill-desktop-api-by-end-of-2013/

http://aragonresearch.com/microsoft-kills-skype-desktop-apis-leaves-developers-scrambling/

我建议你不要把时间花在skype4com上,而是寻找其他解决方案让video聊天工作。

请仔细阅读以下主题,因为这会讨论video聊天的几种替代方法。

使用高质量video流开发video聊天应用程序

另一个有希望的是Bittorent Live。 但你必须等待。 它声称

BitTorrent Live是一种function强大的基于网络的新型直播技术。 旨在消除广播障碍,Live是一种全新的协议,旨在为大量观众提供高质量的video – 显着降低基础设施成本和网络延迟。

http://live.bittorrent.com/

它尚未打开,让我们看:)