Abonnieren von Streams anderer Kunden
Schließlich möchten wir, dass die Kunden in der Lage sind abonnieren auf die Streams anderer Clients in der Sitzung zugreifen (oder diese anzeigen):
- Hinzufügen einer
subscriberEigenschaft der Klasse ViewController zu:
class ViewController: UIViewController {
var session: OTSession?
var publisher: OTPublisher?
var subscriber: OTSubscriber?
Die Klasse OTSubscriber ist im iOS SDK definiert. Sie verwendet die Kamera und das Mikrofon des Geräts, um eine Stream Vonage Video-Sitzung zu abonnieren.
- Ändern Sie die Implementierung der
session(_: streamCreated)Methode (einer der OTSessionDelegate-Callbacks), um Code zum Abonnieren der Streams anderer Clients in die Sitzung aufzunehmen:
func session(_ session: OTSession, streamCreated stream: OTStream) {
subscriber = OTSubscriber(stream: stream, delegate: self)
guard let subscriber = subscriber else {
return
}
var error: OTError?
session.subscribe(subscriber, error: &error)
guard error == nil else {
print(error!)
return
}
guard let subscriberView = subscriber.view else {
return
}
subscriberView.frame = UIScreen.main.bounds
view.insertSubview(subscriberView, at: 0)
}
Wenn ein anderer Client einen Stream in einer Sitzung veröffentlicht, wird diese Methode aufgerufen, und ein OTStream-Objekt wird übergeben. Die Klasse OTStream ist im iOS SDK definiert und stellt einen Audio-Video-Stream in der Sitzung dar. Der Code initialisiert eine Instanz der OTSubscriber-Klasse, die im iOS SDK definiert ist. Die OTSubscriber() Konstruktor nimmt zwei Parameter entgegen: Das OTStream-Objekt (für den Stream, den Sie anzeigen möchten) und das Objekt, das das OTSubscriberDelegate-Protokoll implementiert.
- Als nächstes werden wir Methoden des OTSubscriberDelegate-Protokolls implementieren. Dieses Protokoll enthält Methoden für die Behandlung von Ereignissen im Zusammenhang mit dem Abonnenten. Fügen Sie den folgenden Code am Ende der Datei ViewController.swift nach der schließenden Klammer der Erweiterung OTPublisherDelegate ein:
// MARK: - OTSubscriberDelegate callbacks
extension ViewController: OTSubscriberDelegate {
public func subscriberDidConnect(toStream subscriber: OTSubscriberKit) {
print("The subscriber did connect to the stream.")
}
public func subscriber(_ subscriber: OTSubscriberKit, didFailWithError error: OTError) {
print("The subscriber failed to connect to the stream.")
}
}
- Wenn der Client eine Verbindung zur Sitzung herstellt, wird die
subscriberDidConnect(_:)Methode aufgerufen wird. - Wenn der Client keine Verbindung zur Sitzung herstellen kann, wird ein OTError-Objekt an die
subscriber(_: didFailWithError:)Methode.
Einfacher Video-Chat
Lernen Sie die grundlegenden Concepts der Vonage Video API-Plattform kennen und erfahren Sie, wie Benutzer über Video, Voice und Messaging kommunizieren können. Erkunden Sie einen grundlegenden Ablauf der Vonage Video API.