Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Описание

Данный пример может использоваться для аудиочата между двумя участниками на 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);
        }
    });
}



  • No labels