# Примеры для Android
Несколько примеров для IDE Android Studio при разработке под Android. Скачать их вы можете на нашем GitHub.
# Пример 1. Демонстрация основных возможностей SDK
Одностраничное приложение где реализованы все основные функции TrueConf Mobile SDK:
Инициализация и подключение к серверу (
start
).Ручной (по нажатию кнопки) логин на указанном сервере под учётной записью пользователя и ручной выход из аккаунта.
Звонок абоненту по его TrueConf ID (
callTo
).Возможность принимать входящие видеозвонки.
В классе 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.
Показанные в примере возможности и использованные для этого фрагменты кода:
Создание своего окна входящего вызова на базе наследника класса
IncomingCallFragment
. Если необходимо изменить поведение при принятии или отклонении звонка, нужно переопределить методыonAcceptClick
иonDeclineClick
соответственно.Кастомизация окна исходящего вызова на базе наследника класса
PlaceCallFragment
. Если необходимо изменить поведение при отмене звонка, нужно переопределить методonHangupClick
.Изменение окна конференции на базе наследника класса
ConferenceFragment
.Изменение размера окна звонка с помощью метода
setCallLayoutParams
.Управление микрофоном с помощью метода
setDefaultMicEnabled()
и пр.Управление камерой с помощью метода метода
setDefaultCameraEnabled()
и пр.Настройка динамика с помощью метода
setDefaultSpeakerEnabled()
и др.Изменение размеров и координат видеоокон участников конференции.
Чтобы посмотреть работу функционала изменения размеров и координат окон, раскомментируйте содержимое метода onCalculateCustomLayouts
в MainActivity
в примере.