Visão geral
Mostrar as métricas de observabilidade combinadas na parte superior da interface de usuário da chamada, para que você possa ver dados de qualidade em tempo real durante uma sessão. Com base no que você observar, é possível adicionar limites posteriormente (por exemplo, exibir uma mensagem de conexão ruim quando networkDegradationSource é .local).
Exibir estatísticas na interface do usuário
Use um pequeno ObservabilityStats modelo no seu projeto para armazenar campos de sobreposição (largura de banda, perda de pacotes, fonte da degradação, rótulos de condição da rede).
1. Visualizações do editor e do assinante do host
Reutilize um UIViewRepresentable wrapper (como no Básicos do chat por vídeo (Swift) (tutorial) para incorporar OTPublisher e OTSubscriber visualizações no 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. Sobreposição de estatísticas
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()
}
}
Fio @Published var latestObservabilityStats em VonageVideoManager Portanto, o SwiftUI é atualizado quando as chamadas de retorno dos delegados atualizam o estado na fila principal.
3. Ciclo de vida de um aplicativo para iOS
Específico para iOS: Ao contrário do SDK do Android, session.onPause() / onResume(), os aplicativos para iOS geralmente dependem de ScenePhase, interrupções na sessão de áudio e sua própria política ao colocar o aplicativo em segundo plano durante uma chamada. Se o aplicativo for colocado em segundo plano, as estatísticas podem ser pausadas ou interrompidas até que a sessão volte a ficar ativa — faça o teste em um dispositivo físico para obter um comportamento realista da rede.
Próximo: Execute o programa com um segundo participante e verifique se as atualizações da sobreposição foram feitas.
Observabilidade do cliente
Saiba como usar a observabilidade do cliente para monitorar métricas de qualidade em tempo real de uma videochamada com o Vonage Video SDK.