Reconnecter les médias d'un appel ou d'une conversation

Vue d'ensemble

Ce guide explique comment se reconnecter à un appel ou au support d'une conversation dans votre application Vonage Client Android et iOS.

Reconnexion automatique

Le Client SDK peut tenter de se reconnecter automatiquement à un appel ou au média d'une conversation si vous définissez le paramètre autoReoffer de la configuration. Cette propriété est utile en cas de brève interruption de la connectivité internet ou lorsque l'utilisateur passe d'un réseau cellulaire à un réseau WiFi.

val client = NexmoClient.Builder().autoMediaReoffer(true).build(this)

Écoute des changements d'état des appels

Pour savoir quand l'état des médias d'un appel ou d'une conversation a changé, vous pouvez écouter les événements d'état des médias avec le SDK Android et iOS. Notez l'état déconnecté. Un état déconnecté signifie qu'il y a eu un problème de réseau temporaire et que le client tentera une reconnexion en fournissant au SDK Android et au SDK iOS l'autorisation de se reconnecter. autoReoffer a été définie. Si vous n'avez pas défini autoReoffer à true vous pouvez alors vous reconnecter manuellement ici.

To get MediaConnectionState updates you need to add a NexmoMediaStatusListener. You can do this by setting it on a call's conversation object.

call?.conversation?.addMediaStatusListener(object: NexmoMediaStatusListener {
    override fun onMediaConnectionStateChange(legId: String, status: EMediaConnectionState) {
        // Update UI and/or reconnect
    }
})

Reconnexion manuelle

Le Client SDK dispose de fonctions permettant de reconnecter explicitement les médias d'un appel ou d'une conversation. C'est utile, par exemple, lorsque vous souhaitez changer l'appareil sur lequel un utilisateur parle sans raccrocher et commencer un nouvel appel si l'application meurt.

Call:

client.reconnectCall("conversationId", "legId", object : NexmoRequestListener<NexmoCall> {
    override fun onSuccess(result: NexmoCall?) {
        // handle call
    }

    override fun onError(error: NexmoApiError) {
        // handle error
    }
})

Conversation media:

conversation.reconnectMedia()