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.
- Hinzufügen einer
sessionEigenschaft 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.
- Um die Protokollierung zu erleichtern, fügen Sie eine
TAGEigenschaft am Anfang derMainActivityKlasse:
companion object {
private const val TAG = "MainActivity"
}
- 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.
- 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)
- Als Nächstes werden wir die
sessionListenerEigenschaft. Fügen Sie den folgenden Code am Anfang der DateiMainActivityKlasse:
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.
- Fügen Sie die folgenden Methoden zur
MainActivityKlasse, 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()
}
Einfacher Video-Chat
Lernen Sie die grundlegenden Concepts der Vonage Video API-Plattform kennen und erfahren Sie, wie Benutzer über Video, Voice und Messaging kommunizieren können. Erkunden Sie einen grundlegenden Ablauf der Vonage Video API.