Visão geral
Agora vamos nos inscrever e registrar os ouvintes, para que possamos receber os callbacks com as estatísticas reais a serem analisadas. O próprio tratamento dos callbacks será feito na próxima etapa
1. Inscrever e cadastrar ouvintes relevantes
Quando um fluxo remoto chegar, crie um Subscriber e anexar os dois ouvintes de estatísticas antes ou após a inscrição (o exemplo define esses valores antes de session.subscribe):
override fun onStreamReceived(session: Session, stream: Stream) {
if (subscriber == null) {
subscriber = Subscriber.Builder(this@MainActivity, stream).build()
subscriber?.setSubscriberListener(subscriberListener)
subscriber?.setVideoStatsListener(videoStatsListener)
subscriber?.setMediaLinkStatsListener(mediaLinkStatsListener)
session.subscribe(subscriber)
}
}
| Ouvinte | O que ele oferece |
|---|---|
VideoStatsListener |
Métricas de vídeo do lado do destinatário (bytes, pacotes, perdas, carimbo de data/hora) |
MediaLinkStatsListener |
transport, remotePublisherTransport, networkDegradationSource — veja Estatísticas de links de mídia dos assinantes |
2. Limpar o estado de observabilidade quando o fluxo for interrompido:
Quando o participante remoto cancelar a publicação ou se desconectar, libere o assinante e redefina as estatísticas armazenadas para que a sobreposição não exiba valores desatualizados:
override fun onStreamDropped(session: Session, stream: Stream) {
if (subscriber != null) {
subscriber = null
latestObservabilityStats = null
latestMediaLinkSnapshot = null
}
}
Além disso, cancele a inscrição ou elimine o assinante caso seu aplicativo permita que ele volte a participar da mesma sessão com um novo stream.
3. Opcional: callbacks do ciclo de vida do assinante
Em SubscriberListener, registro onConnected / onDisconnected para confirmar se a assinatura está ativa antes de esperar ver as estatísticas no Logcat ou na sobreposição.
Observabilidade do cliente
Saiba como usar a observabilidade do cliente para monitorar métricas de qualidade em tempo real de uma videochamada com o Vonage Video SDK.