Enabling sender-side statistics

Um absenderseitige Statistiken zu erhalten, aktivieren Sie diese für den Herausgeber des Streams, indem Sie die senderStatsTrack Eigenschaft zu true für die OTPublisherKitSettings Objekt, das zur Erstellung des Verlags verwendet wird.

let settings = OTPublisherSettings()
settings.senderStatsTrack = true   // Enable sender-side stats

let publisher = OTPublisher(delegate: self, settings: settings)

Wenn senderStatsTrack nicht aktiviert ist, wird kein Absenderstatistikkanal für diesen Verlag veröffentlicht. Der Standardwert ist false.

Subscribing to sender-side statistics

Um Absenderstatistiken zu erhalten, setzen Sie die networkStatsDelegate für einen Abonnenten:

let subscriber = OTSubscriber(stream: stream, delegate: self)
subscriber?.networkStatsDelegate = self

Dann implementieren Sie den Hörer entweder für Video- oder Audiostatistiken:

extension MyAppController: OTSubscriberKitNetworkStatsDelegate {
    func subscriber(_ subscriber: OTSubscriberKit, videoNetworkStatsUpdated stats: OTSubscriberKitVideoNetworkStats) {
        guard let senderStats = stats.senderStats else { return }
        // Use stats
    }
    func subscriber(_ subscriber: OTSubscriberKit, audioNetworkStatsUpdated stats: OTSubscriberKitAudioNetworkStats) {
        guard let senderStats = stats.senderStats else { return }
        // Use stats
    }
}

Receiving statistics events

Die OTSubscriberKitNetworkStatsDelegate Callbacks für Video und Audio liefern absenderseitige Statistiken, wie oben gezeigt. Die OTSenderStats, enthalten als die senderStats Mitglied in beiden OTSubscriberKitVideoNetworkStats und OTSubscriberKitAudioNetworkStatsbietet zwei Eigenschaften:

  • connectionMaxAllocatedBitrate - Die geschätzte maximale Bitrate für die Verbindung
  • connectionEstimatedBandwidth - Die aktuell geschätzte Bandbreite für die Verbindung

Diese beiden Metriken werden pro Audio-Video-Bündel berechnet, so dass sowohl in der Video- als auch in der Audiostatistik die gleichen Werte erscheinen. Da sie den Transport und nicht einzelne Tracks widerspiegeln, werden die Metriken sowohl für Audio als auch für Video verwendet.

extension MyAppController: OTSubscriberKitNetworkStatsDelegate {
    func subscriber(_ subscriber: OTSubscriberKit, videoNetworkStatsUpdated stats: OTSubscriberKitVideoNetworkStats) {
        guard let senderStats = stats.senderStats else { return }
        print("Sender max allocated bitrate: \(senderStats.connectionMaxAllocatedBitrate)")
        print("Sender current estimated bandwidth: \(senderStats.connectionEstimatedBandwidth)")
    }
}

Sample app

Siehe die vonage-video-ios-sdk-beispiele sender-seitige statistik beispiel.