Kotlin

Übersicht

Wir werden nun die Listener abonnieren und registrieren, damit wir die Callbacks mit den eigentlichen Statistiken empfangen können. Die eigentliche Callback-Verarbeitung erfolgt im nächsten Schritt.

1. Abonnieren und relevante Hörer registrieren

Wenn ein Remote-Stream eintrifft, erstelle einen Subscriber und beide Statistik-Listener anfügen vor oder nach dem Abonnieren (im Beispiel werden sie vorher gesetzt 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)
    }
}
Zuhörer Was es bietet
VideoStatsListener Videokennzahlen auf der Empfängerseite (Bytes, Pakete, Verluste, Zeitstempel)
MediaLinkStatsListener transport, remotePublisherTransport, networkDegradationSource - siehe Abonnenten-Medien-Link-Statistik

2. Den Observability-Status löschen, wenn der Stream unterbrochen wird:

Wenn der Remote-Teilnehmer seine Veröffentlichung zurückzieht oder die Verbindung trennt, geben Sie den Abonnenten frei und setzen Sie die gespeicherten Statistiken zurück, damit im Overlay keine veralteten Werte angezeigt werden:

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

Melden Sie den Abonnenten außerdem ab oder löschen Sie ihn, falls Ihre App die erneute Teilnahme an derselben Sitzung mit einem neuen Stream unterstützt.

3. Optional: Callbacks zum Lebenszyklus von Abonnenten

Unter SubscriberListener, Protokoll onConnected / onDisconnected um zu überprüfen, ob das Abonnement aktiv ist, bevor Sie mit der Anzeige von Statistiken in Logcat oder im Overlay rechnen.