| 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