Herdado de NSObject
Declarado em OTSession.h

Visão geral

O primeiro passo para usar o SDK do OpenTok para iOS é inicializar um objeto OTSession com sua chave de API e um ID da sessão Use o objeto OTSession para se conectar ao OpenTok usando sua conta de desenvolvedor Chave de API e um válido token.

Obter informações sobre a sessão

sessionConnectionStatus

O status desta instância da OTSession. Útil para consultas pontuais sobre o status da sessão.

@property (readonly) OTSessionConnectionStatus sessionConnectionStatus

Discussão

Os valores válidos estão definidos em OTSessionConnectionStatus:

  • OTSessionConnectionStatusNotConnected - A sessão não está conectada.
  • OTSessionConnectionStatusConnected - A sessão está conectada.
  • OTSessionConnectionStatusConnecting - A sessão está se conectando.
  • OTSessionConnectionStatusDisconnecting - A sessão está sendo encerrada.
  • OTSessionConnectionStatusFailed - A sessão sofreu um erro fatal

Ao instanciar, espere que o sessionConnectionStatus ter o valor OTSessionConnectionStatusNotConnected.

Você pode usar um observador de chave-valor para monitorar essa propriedade. No entanto, o [OTSessionDelegate sessionDidConnect:] e [OTSessionDelegate sessionDidDisconnect:] As mensagens são enviadas ao delegado da sessão quando a sessão se conecta e se desconecta.

Declarado em

OTSession.h

sessionId

O ID da sessão desta instância. Este é um valor imutável.

@property (readonly) NSString *sessionId

Declarado em

OTSession.h

streams

Os streams que fazem parte desta sessão, identificados pelo streamId.

@property (readonly) NSDictionary<NSString*OTStream*> *streams

Declarado em

OTSession.h

connection

O OTConnection objeto para esta sessão. A propriedade de conexão só fica disponível assim que o [OTSessionDelegate sessionDidConnect:] A mensagem é enviada. Se a sessão não conseguir se conectar, essa propriedade permanecerá nula.

@property (readonly) OTConnection *connection

Declarado em

OTSession.h

delegate

O OTSessionDelegate objeto que atua como um objeto delegado para este objeto OTSession, tratando mensagens em nome desta sessão.

@property (nonatomic, assign) id<OTSessionDelegate> _Nullable delegate

Declarado em

OTSession.h

apiQueue

A fila de callbacks do delegado pode ser definida pelo aplicativo. A fila do GCD para emitir callbacks ao delegado pode ser substituída para permitir a integração com o XCTest (novidade no Xcode 5) ou outras estruturas que precisem operar na thread principal.

@property (nonatomic, assign) dispatch_queue_t _Nonnull apiQueue

Declarado em

OTSession.h

capabilities

Um OTSessionCapabilities objeto, que indica se o cliente pode publicar e assinar fluxos na sessão, com base na função atribuída ao token usado para se conectar à sessão. Essa propriedade é definida como nil até que você tenha se conectado a uma sessão e o [OTSessionDelegate sessionDidConnect:] O método foi chamado.

@property (readonly) OTSessionCapabilities *capabilities

Declarado em

OTSession.h

Inicializando e conectando-se a uma sessão

– initWithApiKey:sessionId:delegate:

Inicialize esta sessão com sua chave da API do OpenTok, uma ID da sessão, e delegue antes de se conectar ao OpenTok. Envie o [OTSession connectWithToken:error:] mensagem para se conectar à sessão.

- (nullable id)initWithApiKey:(nonnull NSString *)apiKey sessionId:(nonnull NSString *)sessionId delegate:(nullable id<OTSessionDelegate>)delegate

Parâmetros

apiKey Sua chave da API do OpenTok. Importante: Se você estiver usando um aplicativo da Vonage (em vez de um projeto do OpenTok), insira o ID do aplicativo (e não uma chave da API do OpenTok) neste parâmetro.
sessionId O ID da sessão desta instância.
delegate O delegado (OTSessionDelegate) que processa as mensagens em nome desta sessão.

Valor de retorno

O objeto OTSession ou nil, caso a inicialização falhe.

Declarado em

OTSession.h

– initWithApiKey:sessionId:delegate:settings:

Inicialize o objeto OTSession com as configurações definidas por um OTSessionSettings objeto.

- (nullable id)initWithApiKey:(nonnull NSString *)apiKey sessionId:(nonnull NSString *)sessionId delegate:(nullable id<OTSessionDelegate>)delegate settings:(nullable OTSessionSettings *)settings

Parâmetros

apiKey Sua chave da API do OpenTok. Importante: Se você estiver usando a Video API com um aplicativo da Vonage (em vez de um projeto do OpenTok), insira o ID do aplicativo (e não uma chave da API do OpenTok) nesse parâmetro.
sessionId O ID da sessão desta instância.
delegate O delegado (OTSessionDelegate) objeto para a sessão.
settings O (OTSessionSettings) objeto que define as configurações da sessão.

Declarado em

OTSession.h

– connectWithToken:error:

Assim que sua inscrição tiver um token, conecte-se com o seu Chave de API para começar a participar de uma sessão do OpenTok.

- (void)connectWithToken:(nonnull NSString *)token error:(OTError *_Nullable *_Nullable)error

Parâmetros

token O token gerado para esta conexão.
error Defina se ocorrer um erro de forma síncrona durante o processamento da solicitação. O OTSessionErrorCode A enumeração (definida no arquivo OTError.h) define valores para o code propriedade deste objeto. Este objeto é NULL se não ocorrer nenhum erro síncrono. Se ocorrer um erro assíncrono, o [OTSessionDelegate session:didFailWithError:] A mensagem é enviada ao delegado da sessão.

Discussão

Quando a sessão for estabelecida com sucesso, o [OTSessionDelegate sessionDidConnect:] a mensagem é enviada ao delegado da sessão.

Se a sessão não conseguir se conectar, o [OTSessionDelegate session:didFailWithError:] a mensagem é enviada ao delegado da sessão.

Quando a sessão é encerrada, o [OTSessionDelegate sessionDidDisconnect:] A mensagem é enviada ao delegado da sessão.

Observe que as sessões são desconectadas automaticamente quando o aplicativo é suspenso.

Certifique-se de definir um método delegado para o [OTSessionDelegate session:didFailWithError:] mensagem.

Declarado em

OTSession.h

– disconnect:

Desconectar-se de uma sessão ativa do OpenTok.

- (void)disconnect:(OTError *_Nullable *_Nullable)error

Parâmetros

error Defina se ocorrer um erro de forma síncrona durante o processamento da solicitação. O OTSessionErrorCode A enumeração (definida no arquivo OTError.h) define valores para o code propriedade deste objeto. Este objeto é NULL se não ocorrer nenhum erro.

Discussão

Este método libera todos os objetos OTPublisher e OTSubscriber que foram inicializados.

Como prática recomendada, antes de chamar esse método, chame o [OTSession unpublish:error:] método para todos os editores e aguardar o [OTPublisherKitDelegate publisher:streamDestroyed:] mensagem. Isso garante a remoção completa dos editores, especialmente se problemas de conectividade de rede impedir a remoção devido ao recurso de reconexão, que pode manter os fluxos dos editores ativos para uma possível reconexão.

Quando a sessão é encerrada, o [OTSessionDelegate sessionDidDisconnect:] a mensagem é enviada ao delegado da sessão.

Declarado em

OTSession.h

Publicação de fluxos de áudio e vídeo em uma sessão

– publish:error:

Adiciona um editor à sessão.

- (void)publish:(nonnull OTPublisherKit *)publisher error:(OTError *_Nullable *_Nullable)error

Parâmetros

publisher O OTPublisherKit objeto a ser transmitido.
error Defina se ocorrer um erro de forma síncrona durante o processamento da solicitação. O OTPublisherErrorCode A enumeração (definida no arquivo OTError.h) define valores para o code propriedade deste objeto. Este objeto é NULL se não ocorrer nenhum erro. Se ocorrer um erro assíncrono, o [OTPublisherKitDelegate publisher:didFailWithError:] A mensagem é enviada ao delegado do editor.

Discussão

Quando o editor começa a transmitir dados, o [OTPublisherKitDelegate publisher:streamCreated:] A mensagem é enviada ao delegado do editor.

Se a publicação falhar, [OTPublisherKitDelegate publisher:didFailWithError:] é enviada ao delegado do editor e nenhuma mensagem do delegado de sessão será transmitida.

Observe que não é possível utilizar vários editores.

Declarado em

OTSession.h

– unpublish:error:

Remove um editor da sessão.

- (void)unpublish:(nonnull OTPublisherKit *)publisher error:(OTError *_Nullable *_Nullable)error

Parâmetros

publisher O OTPublisher objeto a ser removido da sessão.
error Defina se ocorrer um erro de forma síncrona durante o processamento da solicitação. O OTPublisherErrorCode A enumeração (definida no arquivo OTError.h) define valores para o code propriedade deste objeto. Este objeto é NULL se não ocorrer nenhum erro.

Discussão

Ao remover o editor, o [OTPublisherKitDelegate publisher:streamDestroyed:] A mensagem é enviada ao delegado do editor após o término da transmissão.

Declarado em

OTSession.h

Inscrever-se em transmissões de áudio e vídeo

– subscribe:error:

Conecta esta instância de assinante à sessão e inicia a assinatura. Se o assinante passado for criado a partir de um OTStream instância de um diferente OTSession Nesse caso, o comportamento dessa função é indefinido.

- (void)subscribe:(nonnull OTSubscriberKit *)subscriber error:(OTError *_Nullable *_Nullable)error

Parâmetros

subscriber O assinante deve se conectar e iniciar a assinatura.
error Defina se ocorrer um erro de forma síncrona durante o processamento da solicitação. O OTSubscriberErrorCode A enumeração (definida no arquivo OTError.h) define valores para o code propriedade deste objeto. Este objeto é NULL se não ocorrer nenhum erro. Se ocorrer um erro assíncrono, o [OTSubscriberKitDelegate subscriber:didFailWithError:] A mensagem é enviada ao delegado do assinante.

Declarado em

OTSession.h

– unsubscribe:error:

Desconecta esta instância de assinante da sessão e inicia a limpeza de objetos.

- (void)unsubscribe:(nonnull OTSubscriberKit *)subscriber error:(OTError *_Nullable *_Nullable)error

Parâmetros

subscriber O assinante será desconectado e removido desta sessão.
error Defina se ocorrer um erro de forma síncrona durante o processamento da solicitação. O OTSubscriberErrorCode A enumeração (definida no arquivo OTError.h) define valores para o code propriedade deste objeto. Este objeto é NULL se não ocorrer nenhum erro.

Declarado em

OTSession.h

Envio e recebimento de sinais em uma sessão

– signalWithType:string:connection:error:

Envia um sinal para um ou mais clientes em uma sessão.

- (void)signalWithType:(NSString *_Nullable)type string:(NSString *_Nullable)string connection:(OTConnection *_Nullable)connection error:(OTError *_Nullable *_Nullable)error

Parâmetros

type O tipo do sinal. O tipo também é definido no [OTSessionDelegate session:receivedSignalType:fromConnection:withString:] mensagem. O comprimento máximo do tipo “string” é de 128 caracteres, e ele deve conter apenas letras (A-Z e a-z), números (0-9), “-”, “_” e “~”.
string Os dados a serem enviados. O limite de tamanho dos dados é de 8 KB.
connection Um objeto OTConnection de destino. Defina este parâmetro como nil para enviar um sinal a todos os participantes da sessão.
error Se o envio de um sinal falhar, esse valor é definido como um objeto OTError. A enumeração OTSessionErrorCode (em OTError.h) inclui as constantes OTSessionInvalidSignalType e OTSessionSignalDataTooLong para esses erros. Observe que o sucesso indica que as opções passadas ao método são válidas e que o sinal foi enviado. Isso não significa que o sinal tenha sido recebido com sucesso por qualquer um dos destinatários pretendidos.

Discussão

Veja [OTSession signalWithType:string:connection:retryAfterReconnect:error:] e [OTSessionDelegate session:receivedSignalType:fromConnection:withString:].

Declarado em

OTSession.h

– signalWithType:string:connection:retryAfterReconnect:error:

Envia um sinal para um ou mais clientes em uma sessão. Esta versão do método inclui um retryAfterReconnect parâmetro.

- (void)signalWithType:(NSString *_Nullable)type string:(NSString *_Nullable)string connection:(OTConnection *_Nullable)connection retryAfterReconnect:(BOOL)retryAfterReconnect error:(OTError *_Nullable *_Nullable)error

Parâmetros

type O tipo do sinal. O tipo também é definido no [OTSessionDelegate session:receivedSignalType:fromConnection:withString:] mensagem. O comprimento máximo do tipo “string” é de 128 caracteres, e ele deve conter apenas letras (A-Z e a-z), números (0-9), “-”, “_” e “~”. Veja [OTSession signalWithType:string:connection:retryAfterReconnect:error:], [OTSessionDelegate session:receivedSignalType:fromConnection:withString:], e [OTSessionDelegate sessionDidBeginReconnecting:].
string Os dados a serem enviados. O limite de tamanho dos dados é de 8 KB.
connection Um objeto OTConnection de destino. Defina este parâmetro como nil para enviar um sinal a todos os participantes da sessão.
retryAfterReconnect Ao se reconectar à sessão, deve-se decidir se os sinais iniciados durante o período em que a conexão estava interrompida devem ser enviados. Se o seu cliente perder a conexão com a sessão do OpenTok devido a uma queda na conectividade de rede, ele tentará se reconectar à sessão, e o [OTSessionDelegate sessionDidBeginReconnecting:] a mensagem é enviada. Por padrão, os sinais gerados enquanto o cliente está desconectado são enviados quando (e se) ele se reconectar à sessão do OpenTok. É possível evitar isso definindo o retryAfterReconnect parâmetro para false. (O valor padrão é true.)
error Se o envio de um sinal falhar, esse valor é definido como um objeto OTError. A enumeração OTSessionErrorCode (em OTError.h) inclui as constantes OTSessionInvalidSignalType e OTSessionSignalDataTooLong para esses erros. Observe que o sucesso indica que as opções passadas ao método são válidas e que o sinal foi enviado. Isso não significa que o sinal tenha sido recebido com sucesso por qualquer um dos destinatários pretendidos.

Declarado em

OTSession.h

Forçar as transmissões a silenciar o áudio

– forceMuteAll:error:

Obliga todos os transmissores na sessão (exceto aqueles que estão transmitindo canais excluídos) a silenciar o áudio.

- (void)forceMuteAll:(NSArray<OTStream*> *_Nullable)excludedStreams error:(OTError *_Nullable *_Nullable)error

Parâmetros

excludedStreams Streams a serem excluídos da solicitação de silenciamento. Defina este valor como nulo para silenciar todos os streams da sessão (incluindo aqueles publicados pelo cliente local).
error Se a ação falhar, esse valor será definido como um objeto OTError. Observe que o sucesso indica que as opções passadas ao método são válidas e que a solicitação para silenciar os fluxos foi enviada. Isso não significa que a solicitação tenha sido processada com sucesso pelos clientes de destino.

Discussão

Além disso, quaisquer streams publicados após a chamada à função [OTSession forceMuteAll:error:] método são publicados com o áudio silenciado. Você pode desativar o silenciamento de uma sessão chamando o [OTSession disableForceMute:] método. Depois de chamar o [OTSession disableForceMute:] Com esse método, as novas transmissões publicadas na sessão não terão mais o áudio silenciado.

A chamada a este método faz com que a mensagem seja enviada a cada cliente conectado à sessão, com o active propriedade do muteForcedInfo objeto definido como YES.

Verifique o canForceMute propriedade do [Recursos do OTSession] objeto para verificar se você consegue chamar essa função com sucesso. Isso está reservado para clientes que se conectaram com um token ao qual foi atribuída a função de moderador (consulte o Visão geral da criação de tokens).

Veja [OTSession forceMuteStream:error:], [Recursos do OTSession], [OTSessionDelegate session:muteForced:], [OTPublisherKitDelegate muteForced:], e Silenciar o áudio das transmissões em uma sessão.

Declarado em

OTSession.h

– disableForceMute:

Desativa o estado de mudo ativo da sessão. Após chamar esse método, os novos streams publicados na sessão não terão mais o áudio silenciado.

- (void)disableForceMute:(OTError *_Nullable *_Nullable)error

Parâmetros

error Se a ação falhar, este campo será definido como um objeto OTError.

Discussão

Depois de chamar a [OTSession forceMuteAll:error:] método (ou quando um moderador em outro cliente inicia uma chamada para silenciar todas as transmissões), quaisquer transmissões publicadas após a chamada de moderação são publicadas com o áudio silenciado. Chame o disableForceMute() método para desativar o silêncio de uma sessão (para que os novos streams publicados não sejam automaticamente silenciados).

A chamada a este método faz com que a mensagem seja enviada a cada cliente conectado à sessão, com o active propriedade do muteForcedInfo objeto definido como NO.

Verifique o canForceMute propriedade do [Recursos do OTSession] objeto para verificar se você consegue chamar essa função com sucesso. Isso está reservado para clientes que se conectaram com um token ao qual foi atribuída a função de moderador (consulte o Visão geral da criação de tokens).

Veja [OTSession forceMuteAll:error:], [Recursos do OTSession], [OTSessionDelegate session:muteForced:], e Silenciar o áudio das transmissões em uma sessão.

Declarado em

OTSession.h

– forceMuteStream:error:

Obliga o emissor de um stream especificado a silenciar seu áudio.

- (void)forceMuteStream:(nonnull OTStream *)stream error:(OTError *_Nullable *_Nullable)error

Parâmetros

stream A transmissão a ser silenciada.
error Se a ação falhar, esse valor será definido como um objeto OTError. Observe que o sucesso indica que as opções passadas ao método são válidas e que a solicitação para silenciar os fluxos foi enviada. Isso não significa que a solicitação tenha sido processada com sucesso pelos clientes de destino.

Discussão

Verifique o canForceMute propriedade do [Recursos do OTSession] objeto para verificar se você consegue chamar essa função com sucesso. Isso está reservado para clientes que se conectaram com um token ao qual foi atribuída a função de moderador (consulte o Visão geral da criação de tokens).

Veja [OTSession forceMuteAll:error:], [Recursos do OTSession], [OTSessionDelegate session:muteForced:], [OTPublisherKitDelegate muteForced:], e Silenciar o áudio das transmissões em uma sessão.

Declarado em

OTSession.h

Forçar os clientes a se desconectarem

– forceDisconnect:error:

Obliga um cliente a se desconectar da sessão.

- (void)forceDisconnect:(OTConnection *_Nullable)connection error:(OTError *_Nullable *_Nullable)error

Parâmetros

connection A conexão OTConnection para se desconectar.
error Se a desconexão forçada falhar, esse valor é definido como um objeto OTError. A enumeração OTSessionErrorCode (em OTError.h) inclui OTSessionUnableToForceDisconnect para esses erros.

Discussão

Embora você possa usar o [OTSession forceDisconnect:error:] método para encerrar sua própria conexão, chamando o [Desconexão da sessão OTS:] O método é mais simples. É retornado um erro se a função do cliente não incluir as permissões necessárias para forçar outros usuários a se desconectarem. Você define a função de um cliente ao criar o token do usuário. Quando uma conexão é encerrada usando este método, [OTSessionDelegate sessionDidDisconnect:], [OTSessionDelegate session:connectionDestroyed:] e [OTPublisherKitDelegate publisher:streamDestroyed:] as mensagens são enviadas da mesma forma que seriam se a conexão tivesse sido encerrada automaticamente usando [Desconexão da sessão OTS:]

Declarado em

OTSession.h

Como relatar um problema

– reportIssue:

Relate que seu aplicativo apresentou um problema. Você pode usar o ID do problema com o Inspetor ou ao discutir um problema com a equipe de suporte da Video API da Vonage.

- (void)reportIssue:(NSString *_Nullable *_Nullable)issueId

Parâmetros

issueId Um ponteiro para uma string que será definida como o identificador exclusivo do problema relatado. Se a chamada ao método falhar (por exemplo, devido à falta de conexão de rede), esse valor será definido como nil.

Declarado em

OTSession.h

– setEncryptionSecret:error:

Define o segredo de criptografia de ponta a ponta utilizado por todos os emissores e assinantes.

- (void)setEncryptionSecret:(nonnull NSString *)secret error:(OTError *_Nullable *_Nullable)error

Parâmetros

secret Valor do segredo de criptografia.
error Se a ação falhar, esse parâmetro é definido como um objeto OTError.

Discussão

Veja o Criptografia ponta a ponta guia do desenvolvedor.

Declarado em

OTSession.h