Описание
Данный пример может использоваться для аудиочата между двумя участниками на Web Call Server и позволяет публиковать и проигрывать аудио WebRTC-поток.
Ниже представлен пример аудиочата в приложении
Поля ввода
- 'WCS URL', где
wss://demo.flashphoner.com:8443/
- адрес WCS-сервера - 'Login', где
bob
- имя пользователя - 'Room', где
room1
- имя "комнаты" чата
Работа с кодом примера
Для разбора кода возьмем класс AudioChatActivity.java примера audio chat, который доступен для скачивания в соответствующей сборке 1.1.0.61.
В отличии от прямого подключения к серверу методом createSession()
, для управления подключением к серверу и конференции используется объект RoomManager
. Соединение с сервером установливается при создании объекта RoomManager
, а для присоединения к конфренции вызывается метод RoomManager.join(),
При присоединении к новой "комнате" методом RoomManager.join()
, создается объект Room для работы с этой "комнатой". Для работы с участниками конференции используются объекты Participant.
Все события, происходящие в "комнате" (присоединение/выход пользователя, отправленные сообщения), транслируются другим участникам, подключенным к этой "комнате".
Например, в следующем коде подключаемся к "комнате" и запрашиваем список других участников:
room = roomManager.join(roomOptions); room.on(new RoomEvent() { public void onState(final Room room) { for (final Participant participant : room.getParticipants()) { ... } ... } ... });
1. Инициализация API
Flashphoner.init()
code
Flashphoner.init(this);
2. Создание объекта для рендера полученного аудио потока
SurfaceViewRenderer
code
renderer = new SurfaceViewRenderer(this);
3. Подключение к серверу
Flashphoner.createRoomManager()
code
Методу передается объект RoomManagerOptions со следующими параметрами
- URL WCS-сервера
- имя пользователя для присоединения к чат-комнате
RoomManagerOptions roomManagerOptions = new RoomManagerOptions(mWcsUrlView.getText().toString(), mLoginView.getText().toString()); /** * RoomManager object is created with method createRoomManager(). * Connection session is created when RoomManager object is created. */ roomManager = Flashphoner.createRoomManager(roomManagerOptions);
4. Получение от сервера события, подтверждающего успешное соединение.
RoomManager.onConnected()
code
@Override public void onConnected(final Connection connection) { runOnUiThread(new Runnable() { @Override public void run() { mConnectButton.setText(R.string.action_disconnect); mConnectButton.setTag(R.string.action_disconnect); mConnectButton.setEnabled(true); mConnectStatus.setText(connection.getStatus()); mJoinButton.setEnabled(true); } }); }