# Примеры для Android

Несколько примеров для IDE Android Studio при разработке под Android. Скачать их вы можете на нашем GitHub.

# Пример 1. Демонстрация основных возможностей SDK

Одностраничное приложение где реализованы все основные функции TrueConf Mobile SDK:

  1. Инициализация и подключение к серверу (start).

  2. Ручной (по нажатию кнопки) логин на указанном сервере под учётной записью пользователя и ручной выход из аккаунта.

  3. Звонок абоненту по его TrueConf ID (callTo).

  4. Возможность принимать входящие видеозвонки.

В классе TestApp в onCreate() мы сначала вызываем метод registerApp(), в который передаём дочерний класс от Application, а затем запускаем SDK методом start().

В MainActivity в onCreate() мы вызываем метод setFallbackActivity() с указываем класса Activity, к которому нужно вернуться в случае завершения звонка.

В PlaceholderFragment мы имплементируем интерфейс TrueconfListener и переопределяем его функции для приема callback.

# Пример 2. Демонстрация работы с trueconf-ссылками

Возможность подключиться к серверу, позвонить по протоколу trueconf: c автоматическим логином и звонком конкретному пользователю по его TrueConf ID, либо в конкретную групповую конференцию по её ID.

Звонок выполняется методом parseProtocolLink в качестве параметра которого идет строка вызова в формате String.

Подробнее об управляющем протоколе trueconf: можно почитать в данной статье.

# Пример 3. Работа с групповыми конференциями

Одной из важнейших возможностей TrueConf Mobile SDK является возможность участия в видеоконференциях с несколькими пользователями одновременно. На данный момент возможно только подключение к существующим конференциям.

Пример выглядит также, как и первый, за исключением, что вместо метода callTo для подключения к конференции мы используем метод joinConf(conferenceId).

# Пример 4. Работа со статусами пользователей

В примере показано отслеживание статусов других пользователей на сервере.

Пример на 2 экрана: на первом происходит подключение к серверу и авторизация, после этого открывается второй экран со списком всех пользователей из нашей адресной книги.

В примере также продемонстрировано получение текущего статуса пользователя с помощью метода getUserStatus(user), а также реакция на callback в onUserStatusUpdate и onContactListUpdate.

# Пример 5. Кастомизация интерфейса

Пример показывает, как добавить кнопки на экран внутри звонка. Для этого используется метод setNewExtraButtons, в аргумент которого необходимо поместить массив объектов типа TCExtraButton. Список кнопок визуально появится при нажатии на кнопку “троеточие” в конференции. В качестве примера добавлены 2 кнопки, которые при нажатии открывают новое окно поверх окна конференции. Первая кнопка открывает Fragment, а вторая - Activity.

Для замены иконок внутри звонка нужно загрузить ресурсы в папку drawables со следующими именами:

ic_bluetooth_audio_arrow_off
ic_bluetooth_audio_arrow
ic_bluetooth_audio
ic_call_end
ic_camera_off
ic_camera_on
ic_dyn_arrow_off
ic_dyn_arrow
ic_empty_invoice
ic_headphones_arrow_off
ic_headphones_arrow
ic_headset_mic_arrow_off
ic_headset_mic_arrow
ic_headset_mic
ic_headset
ic_mic_off
ic_mic_on
ic_more_horiz
ic_phone_in_talk_arrow_off
ic_phone_in_talk_arrow
ic_phone_in_talk_off
ic_phone_in_talk
ic_sound_off
ic_sound_on
ic_rotate
ic_minimize_fullscreen
conf_button_back

# Пример 6. Чат

В примере показана возможность использования функции отправки текстовых сообщений sendChatMessage и обработки события о новых входящих сообщениях onChatMessageReceived.

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

# Пример 7. Кастомизация вывода видеоокон в конференции

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

Показанные в примере возможности и использованные для этого фрагменты кода:

  1. Создание своего окна входящего вызова на базе наследника класса IncomingCallFragment. Если необходимо изменить поведение при принятии или отклонении звонка, нужно переопределить методы onAcceptClick и onDeclineClick соответственно.

  2. Кастомизация окна исходящего вызова на базе наследника класса PlaceCallFragment. Если необходимо изменить поведение при отмене звонка, нужно переопределить метод onHangupClick.

  3. Изменение окна конференции на базе наследника класса ConferenceFragment.

  4. Изменение размера окна звонка с помощью метода setCallLayoutParams.

  5. Управление микрофоном с помощью метода setDefaultMicEnabled() и пр.

  6. Управление камерой с помощью метода метода setDefaultCameraEnabled() и пр.

  7. Настройка динамика с помощью метода setDefaultSpeakerEnabled() и др.

  8. Изменение размеров и координат видеоокон участников конференции.

Чтобы посмотреть работу функционала изменения размеров и координат окон, раскомментируйте содержимое метода onCalculateCustomLayouts в MainActivity в примере.

Обновлено: 19.01.2025