Android

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.

  1. Adicione um session propriedade à classe MainActivity (logo após as últimas linhas que você adicionou em Etapa 3):
private Session session;

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.

  1. Para facilitar o registro em log, adicione um TAG propriedade no topo do MainActivity classe:
private static final String TAG = "MainActivity";
  1. No requestPermissions() método que você criou na etapa anterior, adicione as seguintes linhas de código abaixo do // initialize and connect to the session comentário para instanciar o objeto Session e chamar seu connect(token) método:
initializeSession(VonageVideoConfig.APP_ID, VonageVideoConfig.SESSION_ID, VonageVideoConfig.TOKEN);
  1. abaixo do requestPermissions() método, adicione as seguintes linhas de código:
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);
}

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.

  1. A seguir, vamos criar o sessionListener propriedade. Adicione o código a seguir no início do arquivo MainActivity classe:
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());
}
}; 
  • 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.

  1. Adicione os métodos abaixo ao MainActivity classe para notificar a sessão sobre os eventos do ciclo de vida da Activity:
@Override
protected void onPause() {
    super.onPause();

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

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

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