Android

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ñade 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ñade 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 crear una instancia de un objeto Session. El constructor admite tres parámetros:

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

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

El Session.setSessionListener() Este método establece el objeto que implementará la interfaz SessionListener. Esta interfaz incluye métodos de devolución de llamada que se activan en respuesta a eventos relacionados con la sesión. (Los implementaremos en los siguientes pasos).

El Session.connect() método del session El objeto conecta la aplicación cliente a la sesión de Vonage Video. Debes conectarte antes de enviar o recibir flujos de audio y vídeo en la sesión (o antes de interactuar con la sesión de cualquier forma). El 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 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 SessionListener.onError(session, error) se llama al método.
  • Cuando otro cliente publica un flujo en la sesión, la implementación de la 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 SessionListener.onStreamDropped(session, stream) se llama al método.

Por ahora, la aplicación muestra un mensaje en la consola del depurador cuando se produce cualquiera 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 métodos siguientes al 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();
    }
}