Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How is SkypeKit different from programming with the Skype API?

I have a lot of experience writing Delphi 6 Pro apps using the Skype API. I don't use the COM object but instead I interface directly with the Skype client using the SendMessage() system. My current application acts as a full duplex audio proxy with video transmit. To transport audio I use ALTER CALL with the PORT parameter to establish a duplex audio connection with the Skype client via a pair of sockets. For sending video I have a DSPACK based DirectX filter that I instruct the Skype client to select as the chosen video device. This works fine but since it's the Skype API I have the awkwardness of interfacing with the Skype client as a separate entity.

Now along comes SkypeKit which apparently allows a developer to integrate Skype in a much more integrated manner. I'm about to dive into it and I wanted to hear from any developers out there that switched over from the Skype API to SkypeKit. Some questions:

  1. Was there anything missing from SkypeKit that is offered via the Skype API that made your app conversion difficult if not impossible?

  2. Do you have any tips on making the transition as smooth as possible, especially when it comes to avoiding any design choices that can really come back to haunt you when you get far down the SkypeKit path?

  3. Did you find any web resources or documentation from other developers that were really helpful in saving you time or trouble? (Please share links if so).

like image 662
Robert Oschler Avatar asked Sep 29 '11 01:09

Robert Oschler


1 Answers

I am using SkypeKit in my chat-centric Java application so I haven't dealt with A/V.

SkypeKit is just a “black box” program that interacts with Skype protocol by iteslf. It is an executable that starts a process which listens on local port. The process is lightweight, only 20mB on my Windows-based developer machine. It runs completely in background, there are no any notifications at startup/messaging/shutdown.

Your client program interacts with it by sending byte structures via local SSL tunnel. These structures are wrapped by API for C++, Java and Pyton. Java API is easy. You start the process, create new Skype() object and login with your Skype account credentials and get your program callbacks execution when some events happen.

So @Whiler is not completely right, you always need a host application, but in this case this one is small and fast.

I don't know how hardware-based kit works but I think it is a more low-level way.

You can read the Java API here, C++ API (with examples) here, and Python (with examples) here.

Oh, and at least one small difference between desktop API and kit-based one: you can post XML text in the chat.

like image 122
o_nix Avatar answered Sep 21 '22 08:09

o_nix