Kotlin

概要

それでは、リスナーを登録してサブスクライブします。これにより、実際の統計情報を含むコールバックを受け取り、確認できるようになります。コールバックの処理自体は、次のステップで行います。

1. 関連するリスナーを登録・登録する

リモートストリームが到着したら、 Subscriber そして、両方のステータスリスナーを登録する 以前 または購読後(サンプルでは購読前に設定されています) 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)
    }
}
リスナー 提供内容
VideoStatsListener 受信側の動画メトリクス(バイト数、パケット数、損失率、タイムスタンプ)
MediaLinkStatsListener transport, remotePublisherTransport, networkDegradationSource - 見る 加入者メディアリンク統計

2. ストリームが切断された際に、オブザーバビリティの状態をクリアする:

リモート参加者が公開を解除したり接続を切断したりした場合は、サブスクライバーを解放し、保存されている統計情報をリセットして、オーバーレイに古い値が表示されないようにします:

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

また、アプリが新しいストリームで同じセッションに再参加できる機能をサポートしている場合は、そのサブスクライバーの登録を解除するか、破棄してください。

3. オプション:加入者のライフサイクルコールバック

SubscriberListener, ログ onConnected / onDisconnected Logcat やオーバーレイに統計情報が表示されるのを確認する前に、サブスクリプションが有効であることを確認してください。