Swift

Übersicht

Anzeigen die zusammengeführten Beobachtbarkeitsmetriken werden in der Benutzeroberfläche des Anrufs angezeigt, sodass Sie während einer Sitzung Qualitätsdaten in Echtzeit einsehen können. Basierend auf Ihren Beobachtungen können Sie später Schwellenwerte festlegen (beispielsweise eine Meldung über eine schlechte Verbindung anzeigen, wenn networkDegradationSource ist .local).

Statistiken in der Benutzeroberfläche anzeigen

Verwenden Sie ein kleines ObservabilityStats Modell in Ihrem Projekt zur Speicherung von Overlay-Feldern (Bandbreite, Paketverlust, Ursache der Beeinträchtigung, Kennzeichnungen zum Netzwerkzustand).

1. Ansichten für Host-Publisher und Abonnenten

Wiederverwenden eines UIViewRepresentable Wrapper (wie in dem Grundlagen des Video-Chats (Swift) (Anleitung) zum Einbetten OTPublisher und OTSubscriber Ansichten in SwiftUI:

struct VideoCallView: View {
    @ObservedObject var videoManager: VonageVideoManager

    var body: some View {
        ZStack {
            VStack {
                if let pubView = videoManager.pubView {
                    Wrap(view: pubView)
                        .frame(height: 200)
                }
                if let subView = videoManager.subView {
                    Wrap(view: subView)
                        .frame(maxHeight: .infinity)
                }
            }

            if let stats = videoManager.latestObservabilityStats {
                StatsOverlay(stats: stats)
            }
        }
    }
}

2. Statistik-Overlay

struct StatsOverlay: View {
    let stats: ObservabilityStats

    var body: some View {
        VStack(alignment: .leading, spacing: 4) {
            Text("Observability")
                .font(.headline)
            Text(stats.summaryLines.joined(separator: "\n"))
                .font(.system(.caption, design: .monospaced))
        }
        .padding(12)
        .background(.black.opacity(0.6))
        .foregroundColor(.white)
        .cornerRadius(8)
        .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
        .padding()
    }
}

Draht @Published var latestObservabilityStats auf VonageVideoManager SwiftUI wird also aktualisiert, wenn Delegate-Callbacks den Status in der Hauptwarteschlange aktualisieren.

3. Lebenszyklus einer iOS-App

iOS-spezifisch: Im Gegensatz zum Android SDK session.onPause() / onResume(), iOS-Apps stützen sich in der Regel auf ScenePhase, Unterbrechungen der Audio-Sitzung und Ihre eigenen Richtlinien für den Wechsel in den Hintergrund während eines Anrufs. Wenn die App in den Hintergrund wechselt, werden die Statistiken möglicherweise angehalten oder beendet, bis die Sitzung wieder aktiv ist – testen Sie dies auf einem physischen Gerät, um ein realistisches Netzwerkverhalten zu erhalten.

Weiter: Führen Sie den Test mit einem zweiten Teilnehmer durch und überprüfen Sie, ob die Overlay-Aktualisierungen korrekt funktionieren.