Video calling in desktop application .net

六月ゝ 毕业季﹏ 提交于 2019-12-07 02:49:17

问题


I am working on a wpf application which is suppose to have video calling feature. So I am going for Skype to provide me with the solution.

I am using Skype4COM library to do it. I got all the friends from Skype in my application, I can make call to my friends and even can do video call, but I cant control streaming. Video is being shown in Skype window, I want to show it inside my application like a part of my application.

I don't even know which control should I use to handle the video streaming.

If there is another better way or free way to add video calling in a WPF application. I am ready to change my preferences.

I had previous plans to use Web browser control and go for WebRTC but that does not support IE and believe there is no web browser control from Mozilla and Chrome.


回答1:


Videoconferencing is not trivial to implement. You have to first look at a signalling protocol like SIP or XMPP which would provide infrastructure to maintain a list of 'friends' and whether they are online or offline. The signalling infrastructure would also let you place a call and alert you when you receive a call. And then there is the question of actually flowing video/audio between two endpoints. There is no single solution that you can plug into your app.

You can look at Google's Libjingle or ConferenceXP for a starting point.

To establish a video conference you would need the following information:

  1. Whom can you call? This is your friends list. You would need a mechanism to add friends to your list and ensure that you can only add friends that are willing to communicate with you

  2. How do you establish a communication channel with your friends? For example what is their IP Address, can they support a particular video codec and so on.

  3. Once you have established a way to communicate with your friend, then there is the question of receiving audio and video information and displaying it with correct timing.

For points 1 and 2 you would need what is called a signalling and presence protocol. SIP and XMPP are two very popular open protocol.

For point [3] you would look at a protocol like RTP.

You can google SIP, XMPP and RTP. You would receive a wide variety of literature. Look at the RFC documents for exact information they they can be a bit arcane.

Libjingle is a library written in C++ implements XMPP and RTP ConferenceXP is a RTP implementation in C# with some basic signalling but I think you can get a start with the examples without really getting into details.




回答2:


You may or maynot be able to control that screen. If skype decides to share that level of control with you.

But it looks like skype4com library is on a dead end. It will stop working soon. :(

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/

I'd recommend you not to invest time on skype4com, but look to other solutions to get the video chat working.

Please go through the following thread, as this discussess few alternative ways for video chatting.

Developing a Video Chat Application with high quality video streaming

Another promising thing is the Bittorent Live. But you will have to wait. It claims

BitTorrent Live is a powerful new web-based live streaming technology. Designed to eliminate barriers to broadcast, Live is an entirely new protocol, designed to deliver high quality video to large audiences - with significant reduction in infrastructure cost and network delays.

http://live.bittorrent.com/

Its not open yet, let see :)



来源:https://stackoverflow.com/questions/21880108/video-calling-in-desktop-application-net

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!