Java

Conectarse a la sesión

A continuación, nos conectaremos a la sesión de Vonage Video. Debes hacer esto antes de poder publicar tu transmisión de audio y video en la sesión o ver las transmisiones de otros participantes.

  1. Añadir un session a la clase MainActivity (justo después de las últimas líneas que has añadido en Paso 3):
private Session session;

La clase Session está definida en el SDK de Android. Representa una sesión de Vonage Video e incluye métodos para interactuar con la sesión.

  1. Para facilitar el registro, añada un TAG en la parte superior de MainActivity clase:
private static final String TAG = "MainActivity";
  1. En el requestPermissions() que creó en el último paso, añada las siguientes líneas de código bajo el método // initialize and connect to the session para instanciar el objeto Session y llamar a su connect(token) método:
initializeSession(VonageVideoConfig.APP_ID, VonageVideoConfig.SESSION_ID, VonageVideoConfig.TOKEN);
  1. por debajo del requestPermissions() añada las siguientes líneas de código:
private void initializeSession(String appId, String sessionId, String token) {
    Log.i(TAG, "appId: " + appId);
    Log.i(TAG, "sessionId: " + sessionId);
    Log.i(TAG, "token: " + token);

    session = new Session.Builder(this, apiKey, sessionId).build();
    session.setSessionListener(sessionListener);
    session.connect(token);
}

Este código utiliza el Session.Builder() para instanciar un objeto Session. El constructor toma tres parámetros:

  • El contexto de la aplicación Android asociada a este proceso
  • ID de APP de Vonage Video
  • El identificador de sesión

En Session.Builder.build() devuelve una nueva instancia de Session.

En Session.setSessionListener() establece el objeto que implementará la interfaz SessionListener. Esta interfaz incluye métodos callback que son llamados en respuesta a eventos relacionados con la sesión. (Los implementaremos en los próximos pasos).

En Session.connect() método del session conecta la aplicación cliente a la sesión de Vonage Video. Debes conectarte antes de enviar o recibir secuencias de audio y video en la sesión (o antes de interactuar con la sesión de cualquier manera). La dirección connect() toma un parámetro: el token de autenticación para que este cliente se conecte a la sesión.

  1. A continuación crearemos el sessionListener propiedad. Añada el siguiente código en la parte superior del archivo MainActivity clase:
private Session.SessionListener sessionListener = new Session.SessionListener() {
@Override
public void onConnected(Session session) {
    Log.d(TAG, "onConnected: Connected to session: " + session.getSessionId());
}

@Override
public void onDisconnected(Session session) {
    Log.d(TAG, "onDisconnected: Disconnected from session: " + session.getSessionId());
}

@Override
public void onStreamReceived(Session session, Stream stream) {
    Log.d(TAG, "onStreamReceived: New Stream Received " + stream.getStreamId() + " in session: " + session.getSessionId());
}

@Override
public void onStreamDropped(Session session, Stream stream) {
    Log.d(TAG, "onStreamDropped: Stream Dropped: " + stream.getStreamId() + " in session: " + session.getSessionId());
}

@Override
public void onError(Session session, OpentokError opentokError) {
    Log.e(TAG, "Session error: " + opentokError.getMessage());
}
}; 
  • Cuando el cliente se conecta a la sesión, la implementación de la función SessionListener.onConnected(session) se llama al método.
  • Cuando el cliente se desconecta de la sesión, la implementación de la función SessionListener.onDisconnected(session) se llama al método.
  • Si el cliente no consigue conectarse a la sesión, la implementación de la función SessionListener.onError(session, error) se llama al método.
  • Cuando otro cliente publica un flujo en la sesión, la implementación de la función SessionListener.onStreamReceived(session, stream) se llama al método.
  • Cuando otro cliente deja de publicar un flujo en la sesión, la implementación de la función SessionListener.onStreamDropped(session, stream) se llama al método.

Por ahora, la aplicación imprime en la consola del depurador cuando se produce alguno de estos eventos.

Depura tu aplicación. Si la aplicación se conecta correctamente a la sesión de Vonage Video, aparecerá el mensaje SessionListener.onConnected(session) se registra en la consola de depuración.

  1. Añade los siguientes métodos a la directiva MainActivity para notificar a la sesión los eventos del ciclo de vida de la actividad:
@Override
protected void onPause() {
    super.onPause();

    if (session != null) {
        session.onPause();
    }
}

@Override
protected void onResume() {
    super.onResume();

    if (session != null) {
        session.onResume();
    }
}