Herdado de NSObject
Declarado em OTSubscriberKit.h

Visão geral

Um objeto OTSubscriberKit (assinante) exibe dados de mídia vinculados a um OTStream. A classe OTSubscriberKit permite definir um renderizador de vídeo personalizado para o fluxo de vídeo. Use essa classe se tiver interesse em fornecer sua própria implementação de processamento e renderização de vídeo. Caso contrário, use o OTSubscriber classe, que inclui um processador de vídeo e um renderizador pré-integrados.

A propriedade stream faz referência ao stream que você assinou. A classe OTSubscriberKit inclui métodos que permitem desativar e ativar a reprodução local de áudio e vídeo para o stream assinado.

Como obter informações básicas sobre um assinante

session

O OTSession objeto ao qual este assinante pertence. Uma instância terá uma e apenas uma OTSession associada a ela, e essa propriedade é imutável.

@property (readonly) OTSession *session

Declarado em

OTSubscriberKit.h

stream

O fluxo ao qual este assinante está vinculado. Quaisquer canais de mídia presentes no fluxo devem estar disponíveis para exibição/reprodução com esta instância.

@property (readonly) OTStream *stream

Declarado em

OTSubscriberKit.h

delegate

O OTSubscriberKitDelegate objeto que atua como um delegado, responsável pelo tratamento de eventos básicos para este objeto OTSubscriber.

@property (nonatomic, weak) id<OTSubscriberKitDelegate> _Nullable delegate

Discussão

Veja também [OTSubscriberKit audioLevelDelegate], [OTSubscriberKit networkStatsDelegate], e [OTSubscriberKit rtcStatsReportDelegate].

Declarado em

OTSubscriberKit.h

Trabalhando com áudio e vídeo

audioLevelDelegate

Recebe periodicamente relatórios sobre os níveis de áudio desse assinante.

@property (nonatomic, weak) id<OTSubscriberKitAudioLevelDelegate> _Nullable audioLevelDelegate

Discussão

Este é um objeto delegado diferente daquele definido como o [Delegado OTSubscriberKit] propriedade (o objeto OTSubscriberKitDelegate).

Se você não definir essa propriedade, o subsistema de amostragem de áudio ficará desativado.

Declarado em

OTSubscriberKit.h

captionsDelegate

O delegado responsável por receber as legendas da transmissão deste assinante.

@property (nonatomic, weak) id<OTSubscriberKitCaptionsDelegate> _Nullable captionsDelegate

Declarado em

OTSubscriberKit.h

subscribeToAudio

Se deseja assinar o áudio da transmissão.

@property (nonatomic) BOOL subscribeToAudio

Discussão

O valor padrão é SIM.

Definir essa propriedade não tem efeito se o [OTStream tem áudio] A propriedade está definida como NÃO.

Declarado em

OTSubscriberKit.h

subscribeToVideo

Se deseja se inscrever no canal.

@property (nonatomic) BOOL subscribeToVideo

Discussão

O valor padrão é SIM.

Definir essa propriedade não tem efeito se o [OTStream tem vídeo] A propriedade está definida como NÃO.

Declarado em

OTSubscriberKit.h

subscribeToCaptions

Se deseja ativar as legendas.

@property (nonatomic) BOOL subscribeToCaptions

Discussão

O valor padrão é o valor das legendas do editor do stream [OTStream tem legendas]

Declarado em

OTSubscriberKit.h

captionsTranslationLanguage

O idioma preferido para a tradução das legendas deste assinante.

@property (nonatomic, copy, nullable) NSString *captionsTranslationLanguage

Discussão

Essa configuração só entra em vigor quando as legendas estão ativadas. Defina esse campo com um código de idioma compatível com o BCP-47 para receber legendas traduzidas, ou defina como nil para desativar a tradução. O valor padrão é nil (não há tradução configurada).

Os códigos de idiomas compatíveis estão definidos na especificação da API do servidor.

Se o código do idioma não for compatível, o valor não será aplicado. Verifique novamente essa propriedade após defini-la para confirmar se o idioma foi aceito corretamente.

Este é um recurso em versão beta privada.

Declarado em

OTSubscriberKit.h

videoRender

O renderizador de vídeo para esta instância.

@property (nonatomic, strong) id<OTVideoRender> _Nullable videoRender

Declarado em

OTSubscriberKit.h

preferredResolution

A resolução preferencial para o stream do assinante.

@property (nonatomic) CGSize preferredResolution

Discussão

Limitar a resolução do vídeo e a taxa de quadros (consulte [OTSubscriberKit preferredFrameRate]) reduz o uso da rede e da CPU no cliente assinante. Você pode optar por usar uma resolução mais baixa com base nas dimensões do vídeo do assinante no aplicativo. Você pode optar por usar uma taxa de quadros ou resolução mais baixa para assinantes de uma transmissão que seja menos importante (e menor) do que outras transmissões.

Esse método só se aplica ao assinar um fluxo que utilize o recurso de vídeo escalável. O vídeo escalável está disponível:

  • Apenas nas sessões que utilizam o OpenTok Media Router (sessões com o modo de mídia (definido como “roteado”)
  • Apenas para transmissões publicadas por clientes que suportam vídeo escalável (consulte a documentação do recurso de vídeo escalável).

Em transmissões que não utilizam vídeo escalável, a chamada a este método não produz nenhum efeito.

Observação: A resolução dos fluxos de vídeo escaláveis é ajustada automaticamente para cada assinante, com base nas condições da rede e no uso da CPU, mesmo que você não chame este método. Chame este método se quiser limitar a resolução para este assinante.

Nem todas as resoluções estão disponíveis para um assinante. Quando você define a resolução preferida, o SDK do OpenTok para iOS seleciona a melhor resolução disponível que atenda às suas restrições. As resoluções disponíveis dependem da resolução máxima definida pelo Editor para a transmissão, que é definida como a [OTStream videoDimensions] propriedade da transmissão. Cada uma das resoluções disponíveis para uma transmissão utilizará a mesma proporção de tela.

Declarado em

OTSubscriberKit.h

preferredFrameRate

A taxa de quadros preferencial para a transmissão do assinante.

@property (nonatomic) float preferredFrameRate

Discussão

Limitar a taxa de quadros e a resolução do vídeo (consulte [OTSubscriberKit preferredResolution]) reduz o uso da rede e da CPU no cliente assinante. Você pode optar por usar uma resolução mais baixa com base nas dimensões do vídeo do assinante no aplicativo. Você pode optar por usar uma taxa de quadros ou resolução mais baixa para assinantes de uma transmissão que seja menos importante (e menor) do que outras transmissões.

Esse método só se aplica ao assinar um fluxo que utilize o recurso de vídeo escalável. O vídeo escalável está disponível:

  • Apenas nas sessões que utilizam o OpenTok Media Router (sessões com o modo de mídia (definido como “roteado”)
  • Apenas para transmissões publicadas por clientes que suportam vídeo escalável (consulte a documentação do recurso de vídeo escalável).

Em transmissões que não utilizam vídeo escalável, a chamada a este método não produz nenhum efeito.

Observação: A taxa de quadros para transmissões de vídeo escaláveis se ajusta automaticamente para cada assinante, com base nas condições da rede e no uso da CPU, mesmo que você não chame este método. Chame este método se quiser limitar a taxa de quadros para este assinante.

As taxas de quadros disponíveis são baseadas no valor da taxa de quadros máxima disponível para a transmissão. Ao definir a taxa de quadros preferencial para o assinante, o SDK do OpenTok para iOS seleciona a melhor taxa de quadros disponível que seja a mais próxima da preferredFrameRate configuração, com base na largura de banda e nas restrições de CPU do cliente.

As taxas de quadros efetivamente disponíveis dependem, de forma dinâmica, dos recursos de rede e da CPU disponíveis para o editor.

Declarado em

OTSubscriberKit.h

audioVolume

O volume do áudio, entre 0 e 100, do assinante. Ao definir o valor, se ele não estiver nesse intervalo, será ajustado para dentro dele.

@property (nonatomic) double audioVolume

Discussão

O valor padrão é 100.

Declarado em

OTSubscriberKit.h

Obter estatísticas de áudio e vídeo

networkStatsDelegate

O OTSubscriberKitNetworkStatsDelegate objeto que recebe periodicamente estatísticas de qualidade dos assinantes.

@property (nonatomic, weak) id<OTSubscriberKitNetworkStatsDelegate> _Nullable networkStatsDelegate

Discussão

Este objeto delegado recebe mensagens que informam o seguinte:

  • Total de pacotes de áudio e vídeo perdidos
  • Total de pacotes de áudio e vídeo recebidos
  • Total de bytes de áudio e vídeo recebidos

Este é um objeto delegado diferente daquele definido como o [Delegado OTSubscriberKit] propriedade (o objeto OTSubscriberKitDelegate).

Veja também [OTSubscriberKit rtcStatsReportDelegate].

Declarado em

OTSubscriberKit.h

rtcStatsReportDelegate

O OTSubscriberKitRtcStatsReportDelegate que apresenta as estatísticas de RTC para o assinante. O [OTSubscriberKitRtcStatsReportDelegate subscriber:rtcStatsReport:] A mensagem é enviada em resposta à chamada da função [OTSubscriberKit getRtcStatsReport] método.

@property (nonatomic, weak) id<OTSubscriberKitRtcStatsReportDelegate> _Nullable rtcStatsReportDelegate

Declarado em

OTSubscriberKit.h

Inicializando um assinante

– initWithStream:delegate:

Inicializa um assinante e o vincula a um OTStream instância. Uma vez inicializada, a instância fica permanentemente vinculada ao fluxo.

- (_Nullable id)initWithStream:(nonnull OTStream *)stream delegate:(nullable id<OTSubscriberKitDelegate>)delegate

Parâmetros

stream O OTStream objeto ao qual vincular esta instância.
delegate O delegado (OTSubscriberKitDelegate) que irá tratar os eventos gerados por esta instância.

Discussão

O SDK do OpenTok para iOS suporta um número limitado de transmissões simultâneas de áudio e vídeo em um aplicativo:

  • Em uma sessão retransmitida, o limite é de dois fluxos. Um aplicativo pode ter até dois assinantes, ou um emissor e um assinante.
  • Em uma sessão roteada, um aplicativo pode suportar um emissor de áudio e vídeo, um assinante de áudio e vídeo e até três fluxos adicionais assinados apenas de áudio simultaneamente.

(Para obter informações sobre sessões retransmitidas e roteadas, consulte a documentação sobre o modo de mídia de uma sessão.)

A inicialização de um assinante faz com que ele comece a transmitir dados a partir do servidor OpenTok, independentemente de a visualização do objeto assinante ter sido adicionada a uma supervisualização.

Você pode reproduzir apenas o áudio (sem assinar a transmissão de vídeo) configurando o [OTSubscriberKit subscribeToVideo] defina a propriedade como NO imediatamente após inicializar o objeto OTSubscriber. É possível transmitir apenas vídeo (sem assinar o fluxo de áudio) ao definir o [OTSubscriberKit subscribeToAudio] atribuir o valor “NO” imediatamente após a inicialização do objeto OTSubscriber.

Quando o assinante se conecta à transmissão, o [OTSubscriberKitDelegate subscriberDidConnectToStream:] A mensagem é enviada.

Para um objeto OTSubscriber, quando o primeiro quadro do vídeo for decodificado, o [OTSubscriberDelegate subscriberVideoDataReceived:] A mensagem é enviada.

Se o assinante não conseguir se conectar ao stream, o [OTSubscriberKitDelegate subscriber:didFailWithError:] A mensagem é enviada.

Declarado em

OTSubscriberKit.h

– getRtcStatsReport:

Obtém o relatório de estatísticas do RTC para o assinante. Esta é uma operação assíncrona. Defina o [OTSubscriberKit rtcStatsReportDelegate] propriedade e implementar o [OTSubscriberKitRtcStatsReportDelegate subscriber:rtcStatsReport:] método antes de chamar este método. Quando as estatísticas estiverem disponíveis, a implementação do [OTSubscriberKitRtcStatsReportDelegate subscriber:rtcStatsReport:] A mensagem é enviada.

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

Parâmetros

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. Veja também [OTSubscriberKit networkStatsDelegate] e [OTPublisherKit getRtcStatsReport].

Declarado em

OTSubscriberKit.h