Android

S'abonner à d'autres flux de clients

Nous voulons que les clients puissent souscrire à (ou voir) les flux d'autres clients dans la session :

  1. Ajouter un subscriber à la classe MainActivity (après la déclaration de la propriété publisher ) :
private Subscriber subscriber;

La classe Subscriber est définie dans le SDK Android. Elle définit un objet qu'un client utilise pour s'abonner à (visualiser) un flux publié par un autre client.

  1. Modifier la mise en œuvre de la onStreamReceived(session, stream) (l'un des rappels de SessionListener) pour inclure du code permettant de s'abonner aux flux d'autres clients de la session :
@Override
    public void onStreamReceived(Session session, Stream stream) {
        Log.d(TAG, "onStreamReceived: New Stream Received " + stream.getStreamId() + " in session: " + session.getSessionId());
    
        if (subscriber == null) {
            subscriber = new Subscriber.Builder(MainActivity.this, stream).build();
            subscriber.getRenderer().setStyle(BaseVideoRenderer.STYLE_VIDEO_SCALE, BaseVideoRenderer.STYLE_VIDEO_FILL);
            subscriber.setSubscriberListener(subscriberListener);
            session.subscribe(subscriber);
            subscriberViewContainer.addView(subscriber.getView());
        }
    }
  1. Pour enregistrer des événements Ajouter subscriberListener propriété ci-dessous sessionListener de la MainActivity:
SubscriberKit.SubscriberListener subscriberListener = new SubscriberKit.SubscriberListener() {
    @Override
    public void onConnected(SubscriberKit subscriberKit) {
        Log.d(TAG, "onConnected: Subscriber connected. Stream: " + subscriberKit.getStream().getStreamId());
    }

    @Override
    public void onDisconnected(SubscriberKit subscriberKit) {
        Log.d(TAG, "onDisconnected: Subscriber disconnected. Stream: " + subscriberKit.getStream().getStreamId());
    }

    @Override
    public void onError(SubscriberKit subscriberKit, OpentokError opentokError) {
        Log.e(TAG, "SubscriberKit onError: " + opentokError.getMessage());
    }
};

Lorsqu'un autre client publie un flux dans une session, cette méthode est appelée et un objet Stream est transmis. La classe Stream est définie dans le SDK Android et représente un flux audio-vidéo dans la session.

Le code initialise une instance de la classe Subscriber, définie dans le SDK Android. Le code Subscriber.Builder() prend deux paramètres :

  • Le contexte de l'application Android associé à ce processus.
  • L'objet Stream (pour le flux que vous souhaitez visualiser)

Les Session.subscribe(subscriber) s'abonne au flux reçu.

subscriberViewContainer.addView(subscriber.getView()) place la vue du nouveau flux abonné à l'écran.

  1. Modifier la mise en œuvre de la onStreamDropped(Session session, Stream stream) (un autre des rappels de SessionListener) :
@Override
public void onStreamDropped(Session session, Stream stream) {
    Log.i(TAG, "Stream Dropped");

    if (subscriber != null) {
        subscriber = null;
        subscriberViewContainer.removeAllViews();
    }
}

subscriberViewContainer.removeAllViews() supprime la vue d'un abonné une fois que le flux a été interrompu.

Chat vidéo de base

Apprenez les concepts de base de la plateforme Video API de Vonage, y compris la façon dont les utilisateurs peuvent communiquer par le biais de la vidéo, de la voix et de la messagerie. Explorer un flux de base de l'API Video de Vonage.

Étapes
1
Introduction
2
Pour commencer
3
Création d'un nouveau projet
4
Ajout du SDK Android
5
Mise en place de l'authentification
6
Demande d'autorisations
7
Connexion à la session
8
Ajuster l'interface utilisateur de l'application d'exemple
9
Publication d'un flux dans la session
10
S'abonner à d'autres flux de clients
11
Exécution de l'application
12
Conclusion