Publicação de um fluxo na sessão
Quando o aplicativo se conectar à sessão do Vonage Video, queremos que ele transmita um fluxo de áudio e vídeo para a sessão, utilizando a câmera e o microfone do dispositivo:
- Adicione um
publisherpropriedade para oViewControllerclasse:
@interface ViewController() <OTSessionDelegate>
@property (nonatomic) OTSession *session;
@property (nonatomic) OTPublisher *publisher;
@end
A classe OTPublisher está definida no SDK do iOS. Ela utiliza a câmera e o microfone do dispositivo para publicar uma sessão de streaming do Vonage Video.
- Modificar a implementação do
sessionDidConnect(_:)método para incluir código para publicar um stream na sessão:
- (void)sessionDidConnect:(OTSession*)session
{
OTPublisherSettings *settings = [[OTPublisherSettings alloc] init];
_publisher = [[OTPublisher alloc]
initWithDelegate:self
settings:settings];
OTError *error = nil;
[_session publish:_publisher error:&error];
if (error)
{
NSLog(@"Unable to publish (%@)", error.localizedDescription);
return;
}
CGSize screenSize = [UIScreen mainScreen].bounds.size;
CGRect rect = CGRectMake(screenSize.width - 150 - 20, screenSize.height - 150 - 20, 150, 150);
[_publisher.view setFrame:rect];
[self.view addSubview:_publisher.view];
}
Quando o aplicativo se conecta a uma sessão, ele inicializa uma instância do OTPublisher, definido no SDK do iOS. O [OTPublisher initWithDelegate:] O método recebe dois parâmetros: o objeto que implementa o protocolo OTPublisherDelegate e um settingsobjeto.
Em seguida, o código passa o OTPublisher objeto como parâmetro da função [OTSession publish:] método. Esse método transmite um fluxo de áudio e vídeo para a sessão do Vonage Video, utilizando a câmera e o microfone do dispositivo iOS. (Observe que, no simulador do Xcode, o SDK do iOS utiliza um vídeo de teste ao transmitir um fluxo.)
O OTPublisher O objeto possui um view propriedade, que é uma UIView objeto. Essa vista exibe o vídeo capturado pela câmera do dispositivo. O código adiciona essa vista como uma subvista da vista do ViewController principal.
- Altere o
ViewControllerdeclaração de interface para indicar que a classe implementa aOTPublisherDelegateprotocolo:
@interface ViewController() <OTSessionDelegate, OTPublisherDelegate>
A seguir, vamos implementar os métodos da OTSessionDelegate protocolo. Adicione o código a seguir ao final do ViewController classe (antes da @end (declaração):
# pragma mark - OTPublisher delegate callbacks
- (void)publisher:(OTPublisherKit*)publisher
didFailWithError:(OTError*) error
{
NSLog(@"The publisher failed: %@", error);
}
Se o cliente não conseguir transmitir para a sessão do Vonage Video, um OTError o objeto é passado para o [OTPublisherDelegate publisher:didFailWithError:] método.
Faça a depuração do seu aplicativo. Se o aplicativo se conectar com sucesso à sessão do Vonage Video, ele publicará um stream na sessão, e você verá o vídeo do emissor no aplicativo.
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.