Swift

S'abonner aux flux d'autres clients

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

  1. Ajouter un subscriber & subView aux propriétés de la VonageVideoManager classe :
final class VonageVideoManager: NSObject, ObservableObject {
    private var session: OTSession?
    private lazy var publisher: OTPublisher? = {
        let settings = OTPublisherSettings()
        settings.name = UIDevice.current.name
        return OTPublisher(delegate: self, settings: settings)
    }()
    private var subscriber: OTSubscriber?
    @Published var pubView: UIView?
    @Published var subView: UIView?

Les Abonné OTS est définie dans le SDK iOS. Elle utilise la caméra et le microphone de l'appareil pour souscrire à une session vidéo Vonage.

  1. Modifier la mise en œuvre de la session(_: streamCreated) (l'une des méthodes OTSessionDelegate ) pour inclure du code permettant de s'abonner aux flux des autres clients de la session :
func session(_ session: OTSession, streamCreated stream: OTStream) {
    print("Session streamCreated: \(stream.streamId)")

    var error: OTError?
    defer {
        if let error {
            print(error)
        }
        
    }
    let subscriber = OTSubscriber(stream: stream, delegate: self)
    self.subscriber = subscriber
    session.subscribe(subscriber, error: &error)
}

Lorsqu'un autre client publie un flux dans une session, cette méthode est appelée et un message OTStream est transmis. L'objet OTStream est définie dans le SDK iOS et représente un flux audio-vidéo dans la session. Le code initialise une instance de la classe OTSubscriber définie dans le SDK iOS. La classe OTSubscriber() prend deux paramètres : le OTStream (pour le flux que vous souhaitez visualiser) et l'objet qui implémente la méthode OTSubscriberDelegate protocole.

  1. Ensuite, nous mettrons en œuvre les méthodes de la classe OTSubscriberDelegate protocole. Ce protocole comprend des méthodes pour gérer les événements liés à l'abonné. Ajoutez le code suivant à la fin du fichier VonageVideoManager.swift après le crochet de fermeture du fichier OTPublisherDelegate extension :
// MARK: - OTSubscriberDelegate callbacks
extension VonageVideoManager: OTSubscriberDelegate {
    func subscriberDidConnect(toStream subscriberKit: OTSubscriberKit) {
        print("The subscriber did connect to the stream.")
        if let view = subscriber?.view {
            DispatchQueue.main.async {
                self.subView = view
            }
        }
    }
    
    func subscriber(_ subscriber: OTSubscriberKit, didFailWithError error: OTError) {
        print("Subscriber failed: \(error.localizedDescription)")
    }
}
  • Lorsque le client se connecte à la session, la fonction subscriberDidConnect(_:) est appelée.
  • Si le client ne parvient pas à se connecter à la session, un objet OTError est transmis à la fonction subscriber(_: didFailWithError:) méthode.
  1. Enfin, mettez à jour le code de l'interface utilisateur pour inclure également la vue de l'abonné :
struct ContentView: View {
    @ObservedObject var videoManager = VonageVideoManager()
    
    var body: some View {
        VStack {
            videoManager.pubView.flatMap { view in
                Wrap(view)
                    .frame(width: 200, height: 200, alignment: .center)
            }.cornerRadius(5.0)
            videoManager.subView.flatMap { view in
                Wrap(view)
                    .frame(width: 200, height: 200, alignment: .center)
            }.cornerRadius(5.0)
        }
        .task {
            videoManager.setup()
        }
    }
}

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 de la vidéothèque de Vonage
5
Configuration de l'authentification
6
Connexion à la session
7
Publication d'un flux dans la session
8
S'abonner aux flux d'autres clients
9
Exécution de l'application
10
Conclusion