Conectando-se à sessão
Em seguida, vamos nos conectar à sessão do Vonage Video. É necessário fazer isso antes de poder publicar seu fluxo de áudio e vídeo na sessão ou visualizar os fluxos dos outros participantes.
- Adicione um
sessionpropriedade à sua classe:
// NSObject conformance will be useful for dealing with OTSessionDelegate
final class VonageVideoManager: NSObject, ObservableObject {
// Replace with your Vonage Video APP ID
let kAppId = ""
// Replace with your generated session ID
let kSessionId = ""
// Replace with your generated token
let kToken = ""
private var session: OTSession?
/// ...
}
O OTSession A classe está definida no SDK do iOS. Ela representa uma sessão e inclui métodos para interagir com a sessão.
- Adicione um método para instanciar o anteriormente
OTSessionobjeto e chamar seuconnect(withToken: error:)método, conforme mostrado abaixo. Em seguida, é preciso chamá-lo; nós usamos um VonageVideoManager simplessetupmétodo para destacar essa parte:
final class VonageVideoManager: NSObject, ObservableObject {
private var session: OTSession?
public func setup() {
doConnect()
}
private func doConnect() {
session = OTSession(applicationId: kAppId, sessionId: kSessionId, delegate: self)
var error: OTError?
session?.connect(withToken: kToken, error: &error)
if let error {
print(error)
}
}
}
O OTSession() O construtor recebe três parâmetros:
- Seu ID do aplicativo de vídeo da Vonage
- O ID da sessão
- O objeto que implementa a OTSessionDelegate protocolo
O connect() método do session O objeto conecta o aplicativo cliente à sessão do Vonage Video. É necessário estabelecer a conexão antes de enviar ou receber fluxos de áudio e vídeo na sessão (ou antes de interagir com a sessão de qualquer forma). O connect() O método recebe dois parâmetros:
tokené o token de autenticação que permite que este cliente se conecte à sessão.erroré definido como um objeto OTError caso ocorra um erro de forma síncrona ao chamar o método.
- A seguir, vamos implementar os métodos da
OTSessionDelegateprotocolo. Adicione o código a seguir ao final doVonageVideoManager.swiftarquivo, após o colchete de fechamento doVonageVideoManagerclasse:
// MARK: - OTSessionDelegate callbacks
extension VonageVideoManager: OTSessionDelegate {
func sessionDidConnect(_ session: OTSession) {
print("The client connected to the session.")
}
func sessionDidDisconnect(_ session: OTSession) {
print("The client disconnected from the session.")
}
func session(_ session: OTSession, didFailWithError error: OTError) {
print("The client failed to connect to the session: \(error).")
}
func session(_ session: OTSession, streamCreated stream: OTStream) {
print("A stream was created in the session.")
}
func session(_ session: OTSession, streamDestroyed stream: OTStream) {
print("A stream was destroyed in the session.")
}
}
Este protocolo inclui métodos para lidar com eventos relacionados à sessão:
- Quando o cliente se conecta à sessão do Vonage Video, o
sessionDidConnect(_:)o método é chamado. - Se o cliente não conseguir se conectar à sessão do Vonage Video, um objeto OTError é passado para o
session(_: didFailWithError:)método. - Quando o cliente se desconecta da sessão do Vonage Video, o
sessionDidDisconnect(_:)o método é chamado. - Quando outro cliente publica um stream na sessão do Vonage Video.
- Quando outro cliente interrompe a transmissão de um stream para a sessão do Vonage Video.
Por enquanto, o aplicativo exibe mensagens no console do depurador sempre que algum desses eventos ocorre.
Faça a depuração do seu aplicativo. Se o aplicativo se conectar com sucesso à sessão do Vonage Video, o sessionDidConnect(_:) O método exibe informações no console de depuração.
Bate-papo por vídeo básico
Aprenda os conceitos básicos da plataforma Vonage Video API, incluindo como os usuários podem se comunicar por vídeo, voz e mensagens. Explore um fluxo básico da Vonage Video API.