桌面应用程序.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会议,您需要以下信息:
-
你能打电话给谁? 这是你的好友列表。 您需要一种机制来将朋友添加到您的列表中,并确保您只能添加愿意与您通信的朋友
-
你如何与朋友建立沟通渠道? 例如,他们的IP地址是什么,它们是否可以支持特定的video编解码器等等。
-
一旦你建立了与朋友沟通的方式,就会有接收音频和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 – 显着降低基础设施成本和网络延迟。
它尚未打开,让我们看:)