Java

Verbinden mit der Sitzung

Als Nächstes werden wir uns mit der Vonage Video-Sitzung verbinden. Dies ist erforderlich, bevor Sie Ihren Audio-/Videostream in der Sitzung veröffentlichen oder die Streams anderer Teilnehmer anzeigen können.

  1. Hinzufügen einer session Eigenschaft zur Klasse MainActivity (direkt nach den letzten Zeilen, die Sie in Schritt 3):
private Session session;

Die Klasse Session ist im Android SDK definiert. Sie stellt eine Vonage Video-Sitzung dar und enthält Methoden zur Interaktion mit der Sitzung.

  1. Um die Protokollierung zu erleichtern, fügen Sie eine TAG Eigenschaft am Anfang der MainActivity Klasse:
private static final String TAG = "MainActivity";
  1. In der requestPermissions() Methode, die Sie im letzten Schritt erstellt haben, fügen Sie die folgenden Codezeilen unter der // initialize and connect to the session Kommentar zur Instanziierung des Session-Objekts und zum Aufruf seiner connect(token) Methode:
initializeSession(VonageVideoConfig.APP_ID, VonageVideoConfig.SESSION_ID, VonageVideoConfig.TOKEN);
  1. unter dem requestPermissions() Methode fügen Sie die folgenden Codezeilen hinzu:
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);
}

Dieser Code verwendet die Session.Builder() um ein Session-Objekt zu instanziieren. Der Konstruktor benötigt drei Parameter:

  • Der mit diesem Prozess verbundene Android-Anwendungskontext
  • Die Vonage Video APP ID
  • Die Sitzungs-ID

Die Session.Builder.build() Methode gibt eine neue Session-Instanz zurück.

Die Session.setSessionListener() Methode legt das Objekt fest, das die SessionListener-Schnittstelle implementiert. Diese Schnittstelle umfasst Callback-Methoden, die als Reaktion auf sitzungsbezogene Ereignisse aufgerufen werden. (Wir werden sie in den nächsten Schritten implementieren).

Die Session.connect() Methode der session Objekt verbindet die Client-Anwendung mit der Vonage Video-Sitzung. Sie müssen die Verbindung herstellen, bevor Sie Audio-/Videoströme in der Sitzung senden oder empfangen (oder bevor Sie in irgendeiner Weise mit der Sitzung interagieren). Das connect() Methode nimmt einen Parameter entgegen: das Authentifizierungs-Token für diesen Client, um eine Verbindung zur Sitzung herzustellen.

  1. Als Nächstes werden wir die sessionListener Eigenschaft. Fügen Sie den folgenden Code am Anfang der Datei MainActivity Klasse:
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());
}
}; 
  • Wenn der Client eine Verbindung zur Sitzung herstellt, wird die Implementierung des SessionListener.onConnected(session) Methode aufgerufen wird.
  • Wenn der Client die Verbindung zur Sitzung trennt, wird die Implementierung des SessionListener.onDisconnected(session) Methode aufgerufen wird.
  • Wenn der Client keine Verbindung zur Sitzung herstellen kann, wird die Implementierung der SessionListener.onError(session, error) Methode aufgerufen wird.
  • Wenn ein anderer Client einen Stream in der Sitzung veröffentlicht, wird die Implementierung des SessionListener.onStreamReceived(session, stream) Methode aufgerufen wird.
  • Wenn ein anderer Client die Veröffentlichung eines Streams für die Sitzung beendet, wird die Implementierung der SessionListener.onStreamDropped(session, stream) Methode aufgerufen wird.

Im Moment gibt die Anwendung auf der Debugger-Konsole aus, wenn eines dieser Ereignisse eintritt.

Debuggen Sie Ihre Anwendung. Wenn die Anwendung erfolgreich eine Verbindung mit der Vonage Video-Sitzung herstellt, wird die SessionListener.onConnected(session) Methode protokolliert auf der Debug-Konsole.

  1. Fügen Sie die folgenden Methoden zur MainActivity Klasse, um die Sitzung über Ereignisse im Lebenszyklus von Aktivitäten zu informieren:
@Override
protected void onPause() {
    super.onPause();

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

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

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