我正在开发一个wpf应用程序,假设它具有视频通话功能。所以我打算让Skype为我提供解决方案。
我正在使用Skype4COM库来完成它。我在我的应用程序中收到了Skype的所有朋友,我可以打电话给我的朋友甚至可以进行视频通话,但我无法控制流媒体。视频正在Skype窗口中显示,我想在我的应用程序中显示它,就像我的应用程序的一部分。
我甚至不知道应该使用哪个控件来处理视频流。
如果在WPF应用程序中添加视频呼叫还有另一种更好的方式或自由方式。我准备改变我的偏好。
我以前计划使用Web浏览器控制并使用WebRTC,但不支持IE,并且认为Mozilla和Chrome没有Web浏览器控制。
答案 0 :(得分:4)
视频会议的实施并非易事。您必须首先查看SIP或XMPP等信令协议,它将提供基础设施来维护“朋友”列表以及它们是在线还是离线。信号基础设施还可以让您拨打电话并在接到电话时提醒您。然后是在两个端点之间实际流动视频/音频的问题。没有一种解决方案可以插入您的应用程序。
您可以查看Google的Libjingle或ConferenceXP作为起点。
要建立视频会议,您需要以下信息:
你能打电话给谁?这是你的好友列表。您需要一种机制来将朋友添加到您的列表中,并确保您只能添加愿意与您沟通的朋友
您如何与朋友建立沟通渠道?例如,他们的IP地址是什么,他们是否可以支持特定的视频编解码器等等。
一旦你建立了与朋友沟通的方式,就会有接收音频和视频信息并以正确的时间显示它的问题。
对于点1和2,您需要所谓的信令和存在协议。 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是一个全新的 协议,旨在为大量观众提供高质量的视频 - 大幅降低基础设施成本和网络延迟。
尚未打开,请看:)