Inscrever-se nos feeds de outros clientes
Por fim, queremos que os clientes possam inscrever-se para (ou visualizar) as transmissões de outros clientes na sessão:
- Adicione um
subscriberpropriedade para oViewControllerclasse:
@interface ViewController() <OTSessionDelegate, OTPublisherDelegate>
@property (nonatomic) OTSession *session;
@property (nonatomic) OTPublisher *publisher;
@property (nonatomic) OTSubscriber *subscriber;
@end
O OTSubscriber A classe está definida no SDK do iOS. Ela utiliza a câmera e o microfone do dispositivo para se inscrever em uma sessão de streaming do Vonage Video.
- Modificar a implementação do
[OTSessionDelegate session: streamCreated]método (um dosOTSessionDelegatecallbacks) para incluir código que permita assinar os fluxos de outros clientes na sessão:
- (void)session:(OTSession*)session
streamCreated:(OTStream *)stream
{
_subscriber = [[OTSubscriber alloc] initWithStream:stream
delegate:self];
OTError *error = nil;
[_session subscribe:_subscriber error:&error];
if (error)
{
NSLog(@"Unable to subscribe (%@)", error.localizedDescription);
return;
}
[_subscriber.view setFrame:[UIScreen mainScreen].bounds];
[self.view insertSubview:_subscriber.view atIndex:0];
}
Quando outro cliente publica um fluxo em uma sessão, esse método é chamado, e um OTStream o objeto é passado. O OTStream A classe é definida no SDK do iOS e representa um fluxo de áudio e vídeo na sessão do Vonage Video. O código inicializa uma instância da OTSubscriber classe, definida no SDK do iOS. A OTSubscriber() O construtor recebe dois parâmetros: O OTStream objeto (correspondente ao fluxo que você deseja visualizar) e o objeto que implementa o OTSubscriberDelegate protocolo.
- Altere o
ViewControllerdeclaração de interface para indicar que a classe implementa aOTSubscriberDelegateprotocolo:
@interface ViewController() <OTSessionDelegate, OTPublisherDelegate,OTSubscriberDelegate>
A seguir, vamos implementar os métodos do protocolo OTSessionDelegate. Adicione o código a seguir ao final da classe ViewController (antes do @end (declaração):
# pragma mark - OTSubscriber delegate callbacks
- (void)subscriberDidConnectToStream:(OTSubscriberKit *)subscriber {
NSLog(@"The subscirber: %@ did connect to the stream", subscriber);
}
- (void)subscriber:(OTSubscriberKit*)subscriber
didFailWithError:(OTError*)error
{
NSLog(@"subscriber %@ didFailWithError %@",
subscriber.stream.streamId,
error);
}
- Se o cliente não conseguir se conectar à sessão do Vonage Video, um
OTErroro objeto é passado para osubscriber(_: didFailWithError:)método.
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.