Как SkypeKit отличается от программирования с помощью API Skype?

У меня есть большой опыт написания приложений Delphi 6 Pro с использованием API Skype. Я не использую COM-объект, но вместо этого я напрямую взаимодействую с клиентом Skype с помощью системы SendMessage(). Мое текущее приложение действует как полнодуплексный аудиопрокси с передачей видео. Для переноса звука я использую ALTER CALL с параметром PORT, чтобы установить двустороннее аудиосоединение с клиентом Skype через пару сокетов. Для отправки видео у меня есть фильтр DirectX на основе DSPACK, который я поручаю клиенту Skype выбрать в качестве выбранного видеоустройства. Это прекрасно работает, но поскольку у него есть API Skype, у меня есть неловкость взаимодействия с клиентом Skype как отдельная сущность.

Теперь идет SkypeKit, который, по-видимому, позволяет разработчику интегрировать Skype в более интегрированный подход. Я собираюсь погрузиться в него, и я хотел услышать от всех разработчиков, которые перешли от Skype API к SkypeKit. Некоторые вопросы:

  • Было ли что-то отсутствующее в SkypeKit, предлагаемом через API Skype, что затруднило конверсию приложения, если не невозможно?

  • Есть ли у вас какие-либо советы по обеспечению максимально плавного перехода, особенно когда речь заходит о том, чтобы избежать выбора дизайна, который действительно может вернуться, чтобы преследовать вас, когда вы далеко продвигаетесь по пути SkypeKit?

  • Вы нашли какие-либо веб-ресурсы или документацию от других разработчиков, которые действительно помогли вам сэкономить время или проблемы? (Пожалуйста, поделитесь ссылками, если да).

Ответы

Ответ 1

Я использую SkypeKit в своем чат-ориентированном приложении Java, поэтому я не рассматривал A/V.

SkypeKit - это просто программа "черного ящика", которая взаимодействует с протоколом Skype с помощью iteslf. Это исполняемый файл, который запускает процесс, который прослушивает локальный порт. Этот процесс является легким, всего 20 мБ на моей машине для разработчиков на базе Windows. Он работает полностью в фоновом режиме, нет никаких уведомлений при запуске/обмене сообщениями/завершении работы.

Ваша клиентская программа взаимодействует с ней путем отправки структур байтов через локальный туннель SSL. Эти структуры обернуты API для С++, Java и Pyton. Java API легко. Вы начинаете процесс, создаете объект new Skype() и авторизуетесь с учетными данными учетной записи Skype и получаете выполнение обратных вызовов вашей программы, когда происходят некоторые события.

Итак, @Whiler не совсем прав, вам всегда нужно приложение-хост, но в этом случае это мало и быстро.

Я не знаю, как работает аппаратный комплект, но я думаю, что это более низкоуровневый способ.

Вы можете прочитать Java API здесь, С++ API (с примерами) здесь и Python (с примерами) здесь.

О, и по крайней мере одно небольшое различие между настольным API и комплектом: вы можете публиковать текст XML в чате.

Ответ 3

Основное отличие SkypeKit от других решений (sendmessage, COM) заключается в том, что клиентское приложение Skype не требуется... вы можете напрямую взаимодействовать с сетью skype...

Я не копаю это решение, так как доступ не бесплатный (не дорого, но без реального проекта, это было не для меня...).

Так что это может быть очень полезно, если вы планируете заменить реального клиента skype своим собственным программным обеспечением на последней машине... но если вы просто хотите взаимодействовать с существующим, я не уверен.