Swift
Integrar com o Vonage Video Manager
No seu VonageVideoManager.swift, crie uma instância do renderizador personalizado e atribua-a ao publisher:
Copiar
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))
}
}
}
Pontos-chave:
- Crie uma única instância de
CustomVideoRender(reutilize-o, não crie várias instâncias) - Atribua a
publisher.videoRenderantes publicação - Adicione a visualização do renderizador como uma subvisualização da visualização do editor
- Use um
Wrapfunção auxiliar para exibirUIViewno SwiftUI
Renderização básica de vídeo
Aprenda a usar um renderizador de vídeo personalizado no Swift para exibir uma versão em preto e branco de um fluxo de vídeo usando o SDK do Vonage Video para iOS.
Etapas
1
Introdução2
Introdução3
Criando um novo projeto4
Incorporando o SDK de vídeo da Vonage5
Configurando a autenticação6
Compreendendo a arquitetura7
Criar a visualização de renderização personalizada8
Criar o renderizador de vídeo personalizado9
Integração com o Vonage Video Manager10
Criar um wrapper de UIView para SwiftUI11
Exibição no SwiftUI12
Como funciona13
Conclusão