Swift
Intégration avec Vonage Video Manager
Dans votre VonageVideoManager.swiftPour cela, il faut créer une instance du moteur de rendu personnalisé et l'affecter à l'éditeur :
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))
}
}
}
Points clés :
- Créer une instance unique de
CustomVideoRender(réutiliser, ne pas créer plusieurs instances) - L'attribuer à
publisher.videoRenderavant l'édition - Ajouter la vue du moteur de rendu comme sous-vue de la vue de l'éditeur
- Utiliser un
Wrappour afficherUIViewdans SwiftUI
Rendu vidéo de base
Apprenez à utiliser un moteur de rendu vidéo personnalisé en Swift pour afficher une version en noir et blanc d'un flux vidéo à l'aide du SDK iOS Vonage Video.
Étapes
1
Introduction2
Pour commencer3
Création d'un nouveau projet4
Ajout du SDK vidéo de Vonage5
Configuration de l'authentification6
Comprendre l'architecture7
Créer la vue de rendu personnalisée8
Créer le moteur de rendu vidéo personnalisé9
Intégration avec Vonage Video Manager10
Créer un wrapper UIView vers SwiftUI11
Affichage dans SwiftUI12
Comment ça marche13
Conclusion