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

时间:2014-02-19 12:11:22

标签: c# wpf video-streaming skype videochat

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

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

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

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

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

2 个答案:

答案 0 :(得分:4)

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

您可以查看Google的LibjingleConferenceXP作为起点。

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

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

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

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

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

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

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

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

答案 1 :(得分:3)

您可能或可能无法控制该屏幕。如果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上投入时间,而是寻求其他解决方案来让视频聊天工作。

请仔细阅读以下主题,因为这会讨论视频聊天的其他几种方法。

Developing a Video Chat Application with high quality video streaming

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

  

BitTorrent Live是一款功能强大的全新网络直播技术。   旨在消除广播障碍,Live是一个全新的   协议,旨在为大量观众提供高质量的视频 -   大幅降低基础设施成本和网络延迟。

http://live.bittorrent.com/

尚未打开,请看:)