Skype API. Библиотека Skype4COM. Работа со звонками

4 минуты на чтение

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

Ну, а начнем мы, как всегда, с нашего проекта (что необходимо нам добавить). Так как ,у нас уже есть проект - Skype API, то в него на форму добавим следующие компоненты:

  • TButton — 2 шт.
  • TTimer

Ну и теперь приступим к самому программированию

Тут, мы будем использовать, интерфейс — ICall и для определения статуса звонка тип — TCallStatus. Один TButton нам понадобится для того, чтобы сделать звонок другому пользователю, а второй TButton нам понадобится для того, чтобы положить трубку, отключиться, в общем называйте это, как хотите. Ну а сам, TTimer нам понадобится для того, чтобы каждую миллисекунду отслеживать статус данного звонка. Сам статус звонка, мы будем отображать в TStatusBar.

Давайте объявим переменные:

  • Call:ICall;
  • CallStatus:TCallStatus;
  • st:WideString;

Переменная st нам нужна для конвертации статуса звонка в текстовое значение, так как значение статуса возвращается в TOleEnum.

Ну и напоследок делаем некоторые настройки нашей программы, в свойстве TTimer - Enabled устанавливаем в False, а в свойстве Interval устанавливаем 1.

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

procedure TForm2.Button6Click(Sender: TObject);
begin
   Call:=Skype.PlaceCall(ListBox1.Items[ListBox1.ItemIndex],'','','');
   Timer1.Enabled:=True;
end;

Все, теперь мы исключительно работает с Call. Здесь, мы просто указываем ник пользователя, которому необходимо дозвониться. Для того, чтобы отключиться от пользователя можно написать следующий код:

procedure TForm2.Button7Click(Sender: TObject);
begin
   if st<>'Finished' then
    Call.Finish;
end;

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

Давайте опишем переменную id - типа integer. И на событие OnClick кнопки, по нажатию которой, происходит дозвон до другого пользователя, напишем следующий код:

procedure TForm2.Button6Click(Sender: TObject);
var
 id:integer;
begin
   Call:=Skype.PlaceCall(ListBox1.Items[ListBox1.ItemIndex],'','','');
   id:=Call.Id;
   Timer1.Enabled:=True;
end;

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

procedure TForm2.Button8Click(Sender: TObject);
begin
   Skype.Call[id].Finish;
end;

И нет необходимости для каждого звонка создавать свой статус и интерфейс.

Теперь приступим к нашему статусу. На событие TTimer - OnTimer, я написал следующий код:

procedure TForm2.Timer1Timer(Sender: TObject);
var
 i:integer;
begin
   CallStatus:=Call.Status;
   st:=Skype.Convert.CallStatusToText(CallStatus);
   StatusBar1.Panels[0].Text:=st;
end;

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

Ну вот и все, как видите ничего сложного нету.

Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Здравствуйте, давайте вернемся к Skype API. А рассмотрим мы в этой статье то, как можно из стороннего приложения управлять приложением Skype и производить какие-то настройки. Мы уже рассмотрели как можно получать список ников, отправлять им сообщения, смотреть...
Всем здравствуйте. Данная статья, будет рассказывать о том, как можно в Skype разрешить доступ программам к Skype и постоянно не отвечать на всплывающие окна Skype. Скажу сразу, что вся ответственность за добавления в список безопасных программ лежит на Вас, п...
На этот раз, мы рассмотрим, как можно работать с sms-сообщениями, при помощи библиотеки Skype4Com. Тут все очень просто, очень похоже, как мы работали со звонками. Тут только лишь отличается интерфейсом и типом, который определяет статус отправки сообщения. Чт...