Swift
Integration mit Vonage Video Manager
In Ihrem VonageVideoManager.swiftErstellen Sie eine Instanz des benutzerdefinierten Renderers und weisen Sie sie dem Herausgeber zu:
import OpenTok
import SwiftUI
final class VonageVideoManager: NSObject, ObservableObject {
let kAppId = "YOUR_APP_ID"
let kSessionId = "YOUR_SESSION_ID"
let kToken = "YOUR_TOKEN"
// Create the custom renderer instance
let renderer = CustomVideoRender()
private lazy var publisher: OTPublisher? = {
let settings = OTPublisherSettings()
settings.name = UIDevice.current.name
return OTPublisher(delegate: self, settings: settings)
}()
@Published var pubView: AnyView?
private func doPublish() {
var error: OTError?
defer {
processError(error)
}
// Assign the custom renderer to the publisher
guard let publisher else { return }
publisher.videoRender = renderer
session?.publish(publisher, error: &error)
// Setup view hierarchy
guard let pubView = publisher.view else { return }
pubView.frame = CGRect(x: 0, y: 0, width: 250, height: 250)
renderer.view.frame = CGRect(x: 0, y: 0, width: 250, height: 250)
pubView.addSubview(renderer.view)
// Wrap UIView for SwiftUI
DispatchQueue.main.async {
self.pubView = AnyView(Wrap(pubView))
}
}
}
Wichtige Punkte:
- Erstellen Sie eine einzelne Instanz von
CustomVideoRender(wiederverwenden, nicht mehrere Instanzen erstellen) - Weisen Sie es zu
publisher.videoRendervor Veröffentlichung - Hinzufügen der Ansicht des Renderers als Unteransicht der Ansicht des Herausgebers
- Verwenden Sie eine
WrapHilfsprogramm zur AnzeigeUIViewin SwiftUI
Grundlegendes Video-Rendering
Erfahren Sie, wie Sie einen benutzerdefinierten Videorenderer in Swift verwenden, um eine Schwarz-Weiß-Version eines Videostreams mit dem Vonage Video iOS SDK anzuzeigen.
Schritte
1
Einführung2
Erste Schritte3
Ein neues Projekt erstellen4
Hinzufügen des Vonage Video SDK5
Authentifizierung einrichten6
Verstehen der Architektur7
Erstellen der benutzerdefinierten Renderansicht8
Erstellen des benutzerdefinierten Video-Renderers9
Integration mit Vonage Video Manager10
UIView zu SwiftUI Wrapper erstellen11
Anzeige in SwiftUI12
Wie es funktioniert13
Schlussfolgerung