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.
- Añade un
sessionpropiedad de la clase MainActivity:
private var session: Session? = null
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.
- Para facilitar el registro, añade un
TAGen la parte superior deMainActivityclase:
companion object {
private const val TAG = "MainActivity"
}
- Amplíe su
initializeSession()para tomar 3 parámetros e inicializar la sesión, añadir algunos registros simples:
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)
}
}
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.
- Actualizar el uso de
initializeSession()método que has modificado en el último paso, utiliza las siguientes líneas de código:
initializeSession(VonageVideoConfig.APP_ID, VonageVideoConfig.SESSION_ID, VonageVideoConfig.TOKEN)
- A continuación, crearemos el
sessionListenerpropiedad. Añada el siguiente código en la parte superior del archivoMainActivityclase:
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}")
}
}
- 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.
- Añade los métodos siguientes al
MainActivitypara notificar a la sesión los eventos del ciclo de vida de la actividad:
override fun onPause() {
super.onPause()
session?.onPause()
}
override fun onResume() {
super.onResume()
session?.onResume()
}
Videochat básico
Aprende los conceptos básicos de la plataforma Vonage Video API, incluyendo cómo los usuarios pueden comunicarse a través de vídeo, voz y mensajería. Explora un flujo básico de la Video API de Vonage.