Kotlin

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:
private var session: Session? = null

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:
companion object {
    private const val TAG = "MainActivity"
}
  1. Erweitern Sie Ihr initializeSession() Funktion zur Aufnahme von 3 Parametern und Initialisierung der Sitzung, Hinzufügen einiger einfacher Protokolle:
private fun initializeSession(appId: String, sessionId: String, token: String) {
    Log.i(TAG, "appId: $appId")
    Log.i(TAG, "sessionId: $sessionId")
    Log.i(TAG, "token: $token")

    session = Session.Builder(this, appId, sessionId).build().apply {
        setSessionListener(sessionListener)
        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. Aktualisieren Sie die Verwendung von initializeSession() Methode, die Sie im letzten Schritt geändert haben, verwenden Sie die folgenden Codezeilen:
initializeSession(VonageVideoConfig.APP_ID, VonageVideoConfig.SESSION_ID, VonageVideoConfig.TOKEN)
  1. Als Nächstes werden wir die sessionListener Eigenschaft. Fügen Sie den folgenden Code am Anfang der Datei MainActivity Klasse:
private val sessionListener = object : Session.SessionListener {
    override fun onConnected(session: Session) {
        Log.d(TAG, "onConnected: Connected to session: ${session.sessionId}")
    }

    override fun onDisconnected(session: Session) {
        Log.d(TAG, "onDisconnected: Disconnected from session: ${session.sessionId}")
    }

    override fun onStreamReceived(session: Session, stream: Stream) {
        Log.d(TAG, "onStreamReceived: New Stream Received ${stream.streamId} in session: ${session.sessionId}")
    }

    override fun onStreamDropped(session: Session, stream: Stream) {
        Log.d(TAG, "onStreamDropped: Stream Dropped: ${stream.streamId} in session: ${session.sessionId}")
    }

    override fun onError(session: Session, opentokError: OpentokError) {
        Log.e(TAG, "Session error: ${opentokError.message}")
    }
}
  • 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 fun onPause() {
    super.onPause()
    session?.onPause()
}

override fun onResume() {
    super.onResume()
    session?.onResume()
}