Conectando-se à sessão
Em seguida, vamos nos conectar à sessão do Vonage Video. É necessário fazer isso antes de poder publicar seu fluxo de áudio e vídeo na sessão ou visualizar os fluxos dos outros participantes.
- Adicione um
sessionpropriedade da classe MainActivity:
private var session: Session? = null
A classe Session está definida no SDK do Android. Ela representa uma sessão do Vonage Video e inclui métodos para interagir com a sessão.
- Para facilitar o registro em log, adicione um
TAGpropriedade no topo doMainActivityclasse:
companion object {
private const val TAG = "MainActivity"
}
- Amplie seu
initializeSession()função que receba 3 parâmetros e inicialize a sessão, além de adicionar alguns 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 o Session.Builder() para instanciar um objeto Session. O construtor recebe três parâmetros:
- O contexto do aplicativo Android associado a este processo
- O ID do aplicativo Vonage Video
- O ID da sessão
O Session.Builder.build() O método retorna uma nova instância de Session.
O Session.setSessionListener() O método define o objeto que implementará a interface SessionListener. Essa interface inclui métodos de retorno de chamada que são acionados em resposta a eventos relacionados à sessão. (Vamos implementá-los nas próximas etapas).
O Session.connect() método do session O objeto conecta o aplicativo cliente à sessão do Vonage Video. É necessário estabelecer a conexão antes de enviar ou receber fluxos de áudio e vídeo na sessão (ou antes de interagir com a sessão de qualquer forma). O connect() O método recebe um parâmetro: o token de autenticação para que este cliente se conecte à sessão.
- Atualizar o uso de
initializeSession()método que você alterou na etapa anterior, use as seguintes linhas de código:
initializeSession(VonageVideoConfig.APP_ID, VonageVideoConfig.SESSION_ID, VonageVideoConfig.TOKEN)
- A seguir, vamos criar o
sessionListenerpropriedade. Adicione o código a seguir no início do arquivoMainActivityclasse:
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}")
}
}
- Quando o cliente se conecta à sessão, a implementação do
SessionListener.onConnected(session)o método é chamado. - Quando o cliente se desconecta da sessão, a implementação do
SessionListener.onDisconnected(session)o método é chamado. - Se o cliente não conseguir se conectar à sessão, a implementação do
SessionListener.onError(session, error)o método é chamado. - Quando outro cliente publica um fluxo na sessão, a implementação do
SessionListener.onStreamReceived(session, stream)o método é chamado. - Quando outro cliente interrompe a publicação de um fluxo na sessão, a implementação do
SessionListener.onStreamDropped(session, stream)o método é chamado.
Por enquanto, o aplicativo exibe mensagens no console do depurador sempre que algum desses eventos ocorre.
Faça a depuração do seu aplicativo. Se o aplicativo se conectar com sucesso à sessão do Vonage Video, o SessionListener.onConnected(session) O método registra mensagens no console de depuração.
- Adicione os métodos abaixo ao
MainActivityclasse para notificar a sessão sobre os eventos do ciclo de vida da Activity:
override fun onPause() {
super.onPause()
session?.onPause()
}
override fun onResume() {
super.onResume()
session?.onResume()
}
Bate-papo por vídeo básico
Aprenda os conceitos básicos da plataforma Vonage Video API, incluindo como os usuários podem se comunicar por vídeo, voz e mensagens. Explore um fluxo básico da Vonage Video API.