Kotlin

Vue d'ensemble

Nous allons maintenant nous abonner et enregistrer les écouteurs, afin de pouvoir recevoir les rappels contenant les statistiques à consulter. La gestion des rappels proprement dite sera effectuée à l'étape suivante.

1. S'abonner et enregistrer les auditeurs concernés

Lorsqu'un flux distant arrive, créer un Subscriber et associer les deux écouteurs de statistiques avant ou après l'abonnement (dans l'exemple, ils sont définis avant 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)
    }
}
Auditeur Ce qu'il offre
VideoStatsListener Indicateurs vidéo côté réception (octets, paquets, pertes, horodatage)
MediaLinkStatsListener transport, remotePublisherTransport, networkDegradationSource - voir Statistiques sur les liens médias des abonnés

2. Effacer l'état d'observabilité lorsque le flux est interrompu :

Lorsque le participant distant se déconnecte ou annule sa publication, libérez l'abonné et réinitialisez les statistiques enregistrées afin que la superposition n'affiche pas de valeurs obsolètes :

override fun onStreamDropped(session: Session, stream: Stream) {
    if (subscriber != null) {
        subscriber = null
        latestObservabilityStats = null
        latestMediaLinkSnapshot = null
    }
}

Veillez également à désabonner ou à supprimer l'abonné si votre application prend en charge la réintégration à la même session avec un nouveau flux.

3. Facultatif : callbacks liés au cycle de vie des abonnés

En SubscriberListener, journal onConnected / onDisconnected pour vérifier que l'abonnement est bien actif avant de pouvoir consulter les statistiques dans Logcat ou dans la fenêtre superposée.