6

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

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

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

如果有另一种更好的方法或免费的方法可以在 WPF 应用程序中添加视频通话。我准备改变我的偏好。

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

4

2 回答 2

4

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

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

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

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

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

  3. 一旦你建立了一种与朋友交流的方式,接下来就是接收音频和视频信息并以正确的时间显示它的问题。

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

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

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

Libjingle 是用 C++ 编写的库,实现 XMPP 和 RTP ConferenceXP 是 C# 中的 RTP 实现,带有一些基本的信号,但我认为您可以从示例开始,而无需真正深入细节。

于 2014-02-27T17:53:41.967 回答
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 上花费时间,而是寻找其他解决方案来使视频聊天正常工作。

请浏览以下主题,因为它讨论了视频聊天的几种替代方式。

开发具有高质量视频流的视频聊天应用程序

另一个有希望的事情是 Bittorent Live。但你将不得不等待。它声称

BitTorrent Live 是一种强大的基于 Web 的新型实时流媒体技术。Live 旨在消除广播障碍,是一种全新的协议,旨在向大量观众提供高质量的视频 - 显着降低基础设施成本和网络延迟。

http://live.bittorrent.com/

还没开呢,看看吧:)

于 2014-02-23T07:43:16.887 回答