Detecção de alterações na qualidade de áudio e vídeo (somente JavaScript)

Se um cliente passar por períodos de conectividade de rede prejudicada, isso pode se refletir na qualidade da chamada do assinante. O objeto Assinante envia um qualityScoreChanged evento quando as pontuações MOS calculadas para áudio e vídeo mudam. Essas pontuações são apresentadas como números inteiros entre 1 (pior) e 5 (melhor), correspondendo a ruim, insatisfatório, razoável, bom e excelente. Para mais detalhes, consulte o Assinante qualityScoreChanged evento.

Um objeto Subscriber dispara esse evento somente quando uma das pontuações de qualidade sofre alteração. Cada Subscribe dispara eventos com suas próprias pontuações de qualidade de áudio e vídeo, dependendo se está assinando o áudio, o vídeo ou ambos.

Em resposta a esses eventos, seu aplicativo pode (opcionalmente) notificar o cliente sobre as condições da rede que resultam na degradação da qualidade da chamada:

subscriber.on('qualityScoreChanged', ({qualityScore}) => {
  if (qualityScore.audioQualityScore <= 3){
    // Alert the user that the remote party is experiencing degraded service
  }
  if (qualityScore.videoQualityScore <= 3){
    // Alert the user that the remote party is experiencing degraded service
  }
});

Reconexão automática

Se um cliente perder a conexão com um fluxo assinado (por exemplo, devido a um problema de rede), ele tentará se reconectar automaticamente ao fluxo.

Se um cliente perder a conexão com um fluxo assinado (por exemplo, devido a uma queda na conectividade de rede em qualquer um dos clientes), ele tentará se reconectar automaticamente ao fluxo. Quando a conexão com o fluxo é perdida e o cliente tenta se reconectar, o objeto OTSubscriber dispara um disconnected evento. Quando o fluxo é restaurado, o objeto OTSubscriber dispara um connected evento. Se o cliente não conseguir restaurar o fluxo, o objeto OTSubscriber dispara um destroyed evento.

Em resposta a esses eventos, seu aplicativo pode (opcionalmente) exibir notificações na interface do usuário indicando os estados de desconexão temporária, reconexão e destruição:

<OTSubscriber
  eventHandlers={{
    disconnected: (event) => {
      console.log('stream disconnected -- stream ID:', event.streamId);
      // Display a user interface notification.
    },
    connected: (event) => {
      console.log('stream connected -- stream ID:', event.streamId);
      // Adjust user interface.
    },
    destroyed: (event) => {
      console.log('stream destroyed -- stream ID:', event.streamId);
      // Adjust user interface.
    }
  }}/>

O objeto Subscriber dispara um disconnected evento. Quando o fluxo é restaurado, o objeto Subscriber dispara um connected evento. Se o cliente não conseguir restaurar o fluxo, o objeto Subscriber dispara um destroyed evento.

Em resposta a esses eventos, seu aplicativo pode (opcionalmente) exibir notificações na interface do usuário indicando os estados de desconexão temporária, reconexão e destruição:

subscriber.on(
  disconnected: function() {
    // Display a user interface notification.
  },
  connected: function() {
    // Adjust user interface.
  },
  destroyed: function() {
    // Adjust user interface.
  }
);

O SubscriberKit.StreamListener.onDisconnected(SubscriberKit subscriber) método é chamado. Quando a conexão é restabelecida, o SubscriberKit.StreamListener.onReconnected(SubscriberKit subscriber) método é chamado. Se o cliente não conseguir restaurar o fluxo, o Session.SessionListener.onStreamDropped(Session session, Stream stream) o método é chamado.

Em resposta a esses eventos, seu aplicativo pode (opcionalmente) exibir notificações na interface do usuário indicando os estados de desconexão temporária, reconexão e destruição:

// In the implementation of the SubscriberKit.StreamListener interface:
@Override
public void onDisconnected(SubscriberKit subscriber) {
  // Display a user interface notification.
}

@Override
public void onReconnected(SubscriberKit subscriber) {
  // Adjust user interface.
}

// In the implementation of the Session.SessionListener interface:
@Override
public void onStreamDropped(Session session, Stream stream) {
  // Adjust user interface.
}

O OTSubscriberDelegate subscriberDidDisconnect(fromStream:) A mensagem é enviada ao delegado do objeto OTSubscriber.

Quando a conexão for restabelecida, o OTSubscriberDelegate subscriberDidReconnect(toStream:) a mensagem é enviada. Se o cliente não conseguir restabelecer a conexão, o OTSessionDelegate session(_:streamDestroyed:) A mensagem é enviada.

Em resposta a esses eventos, seu aplicativo pode (opcionalmente) exibir notificações na interface do usuário indicando os estados de desconexão temporária, reconexão e desconexão.

// OTSubscriber delegate callbacks:
func subscriberDidDisconnect(fromStream subscriber: OTSubscriberKit) {
  // Display a user interface notification.
}

func subscriberDidReconnect(toStream subscriber: OTSubscriberKit) {
  // Adjust user interface.
}

// OTSession delegate callback:
func session(_ session: OTSession, streamDestroyed stream: OTStream) {
  // Adjust user interface.
}

Quando a conexão é interrompida e o cliente tenta se reconectar, o [OTSubscriberKitDelegate subscriberDidDisconnectFromStream:] A mensagem é enviada ao delegado do objeto OTSubscriberKit.

Quando a conexão for restabelecida, o [OTSubscriberKitDelegate subscriberDidReconnectToStream:] a mensagem é enviada. Se o cliente não conseguir restabelecer a conexão, o [OTSessionDelegate session:streamDestroyed:] A mensagem é enviada.

Em resposta a esses eventos, seu aplicativo pode (opcionalmente) exibir notificações na interface do usuário indicando os estados de desconexão temporária, reconexão e desconexão.

// OTSubscriber delegate callbacks:
- (void)subscriberDidDisconnectFromStream:(OTStream*)stream
{
  // Display a user interface notification.
}

- (void)subscriberDidReconnectToStream:(OTStream*)stream
{
  // Adjust user interface.
}

// OTSession delegate callback:
- (void)session:(OTSession*)session session:streamDestroyed:(OTStream*)stream
{
  // Adjust user interface.
}

O objeto Session envia um StreamDisconnected evento.

Quando a conexão é restabelecida, o objeto Subscriber envia um StreamReconnected evento. Se o cliente não conseguir restaurar o fluxo, o objeto Session envia um StreamDropped evento.

Em resposta a esses eventos, seu aplicativo pode (opcionalmente) exibir notificações na interface do usuário indicando os estados de desconexão temporária, reconexão e destruição:

session.StreamDropped += Session_StreamDropped;

subscriber.StreamDisconnected += Subscriber_StreamDisconnected;
subscriber.StreamReconnected += Subscriber_StreamReconnected;

public void Subscriber_StreamDisconnected(object sender)
{
  // Display a user interface notification.
}

public void Subscriber_StreamReconnected(object sender)
{
  // Display a user interface notification.
}

public void Session_StreamDropped(object sender, EventArgs e)
{
  // Display a user interface notification.
}

Quando a conexão é interrompida e o cliente tenta se reconectar, o on_disconnected função de retorno de chamada do otc_subscriber_callbacks é chamada a estrutura do assinante. Quando a conexão é restabelecida, a on_reconnected função de retorno de chamada do otc_subscriber_callbacks é chamada a estrutura do assinante.

Se o cliente não conseguir restaurar o fluxo, o on_stream_dropped função de retorno de chamada do otc_session_callbacks a estrutura é chamada.

Em resposta a esses eventos, seu aplicativo pode (opcionalmente) exibir notificações na interface do usuário indicando os estados de desconexão temporária, reconexão e destruição: