Herdado de NSObject
Declarado em OTPublisherKit.h

Visão geral

Um publisher captura um fluxo de áudio e vídeo das fontes que você especificar. Você pode, então, publicar o fluxo de áudio e vídeo em uma sessão do OpenTok enviando o [OTSession publish:error:] mensagem.

O SDK do OpenTok para iOS oferece suporte à publicação em todos os dispositivos iOS com vários núcleos. Consulte “Requisitos para desenvolvedores e clientes” no arquivo README do SDK do OpenTok para iOS.

Inicializando um editor

– initWithDelegate:

Inicialize um objeto publisher e especifique o objeto delegado.

- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate

Parâmetros

delegate O delegado (OTPublisherKitDelegate) objeto para o editor.

Valor de retorno

O ponteiro para a instância, ou nil se a inicialização falhar.

Discussão

Ao ser executado no Simulador iOS do Xcode, esse método retorna nil.

Declarado em

OTPublisherKit.h

– initWithDelegate:settings:

Inicialize o editor com as configurações definidas por um OTPublisherKitConfigurações objeto.

- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate settings:(nonnull OTPublisherKitSettings *)settings

Parâmetros

delegate O delegado (OTPublisherKitDelegate) objeto para o editor.
settings O (OTPublisherKitConfigurações) objeto que define as configurações do editor.

Declarado em

OTPublisherKit.h

– initWithDelegate:name:

Inicialize um objeto publisher e especifique o objeto delegado e o nome do fluxo.

- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate name:(nullable NSString *)name

Parâmetros

delegate O delegado (OTPublisherKitDelegate) objeto para o editor.
name O nome do vídeo do editor. O [Nome do OTStream] A propriedade de um stream publicado por esse editor será definida com esse valor (em todos os clientes).

Valor de retorno

O ponteiro para a instância, ou nil se a inicialização falhar.

Discussão

Este método está obsoleto. Use [OTPublisherKit initWithDelegate:settings:] em vez disso.

Ao ser executado no Simulador iOS do Xcode, esse método retorna nil.

Declarado em

OTPublisherKit.h

– initWithDelegate:name:audioTrack:videoTrack:

Inicialize o publisher e especifique se o áudio e o vídeo estarão ativados para esta instância.

- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate name:(nullable NSString *)name audioTrack:(BOOL)audioTrack videoTrack:(BOOL)videoTrack

Parâmetros

delegate O delegado (OTPublisherKitDelegate) objeto para o editor.
name O nome do vídeo do editor. O [Nome do OTStream] A propriedade de um stream publicado por esse editor será definida com esse valor (em todos os clientes).
audioTrack Se deve publicar o áudio (SIM) ou não (NÃO).
videoTrack Se deve publicar o vídeo (SIM) ou não (NÃO).

Discussão

Este método está obsoleto. Use [OTPublisherKit initWithDelegate:settings:] em vez disso.

Se audioTrack ou videoTrack estiverem definidos como NO, o respectivo subsistema não será inicializado, e definir o correspondente [OTPublisherKit publishAudio] e [OTPublisherKit publishVideo] essas propriedades não terão efeito.

Se a sua aplicação não exigir o uso de áudio ou vídeo, é recomendável definir esses valores em vez de usar o [OTPublisherKit publishAudio] e [OTPublisherKit publishVideo] propriedades que desativam as faixas apenas temporariamente.

Declarado em

OTPublisherKit.h

Como obter informações sobre a editora

delegate

O OTPublisherDelegate objeto, que é o delegado do objeto OTPublisher .

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

Discussão

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

Declarado em

OTPublisherKit.h

audioLevelDelegate

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

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

Discussão

Este é um objeto delegado diferente daquele definido como a propriedade delegate (o objeto OTPublisherKitDelegate).

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

Declarado em

OTPublisherKit.h

networkStatsDelegate

O OTPublisherKitNetworkStatsDelegate objeto que recebe periodicamente estatísticas de qualidade do editor.

@property (nonatomic, weak) id<OTPublisherKitNetworkStatsDelegate> _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 do OTPublisherKit] propriedade (o objeto OTPublisherKitDelegate).

Veja também [OTPublisherKit rtcStatsReportDelegate].

Declarado em

OTPublisherKit.h

rtcStatsReportDelegate

O OTPublisherKitRtcStatsReportDelegate que apresenta as estatísticas do RTC para a editora. O [OTPublisherKitRtcStatsReportDelegate publisher:rtcStatsReport:] A mensagem é enviada em resposta à chamada da função [OTPublisherKit getRtcStatsReport] método.

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

Declarado em

OTPublisherKit.h

session

A sessão à qual este editor pertence.

@property (readonly) OTSession *session

Declarado em

OTPublisherKit.h

stream

O OTStream objeto associado ao editor.

@property (readonly) OTStream *stream

Declarado em

OTPublisherKit.h

name

Uma sequência de caracteres que será associada ao stream deste editor. Essa sequência de caracteres é exibida na parte inferior dos vídeos dos assinantes associados ao stream publicado, caso exista uma sobreposição para exibir o nome.

@property (readonly) NSString *name

Discussão

O nome deve ser definido na inicialização, quando você enviar o [OTPublisherKit initWithDelegate:settings:] mensagem.

Esse valor é, por padrão, uma string vazia.

Declarado em

OTPublisherKit.h

– getRtcStatsReport

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

- (void)getRtcStatsReport

Discussão

Veja também [OTPublisherKit networkStatsDelegate] e [OTSubscriberKit getRtcStatsReport].

Declarado em

OTPublisherKit.h

Controle da saída de áudio e vídeo para uma editora

publishAudio

Se deve publicar o áudio.

@property (nonatomic) BOOL publishAudio

Discussão

O valor padrão é TRUE.

Declarado em

OTPublisherKit.h

publishVideo

Se deve publicar o vídeo.

@property (nonatomic) BOOL publishVideo

Discussão

O valor padrão é TRUE.

Declarado em

OTPublisherKit.h

publishCaptions

Se as legendas devem ficar ativas.

@property (nonatomic) BOOL publishCaptions

Discussão

O valor padrão é FALSE.

Declarado em

OTPublisherKit.h

Definição da configuração do dispositivo do editor

videoCapture

O OTVideoCapture instância usada para capturar vídeo para transmissão na sessão do OpenTok .

@property (nonatomic, strong) id<OTVideoCapture> _Nullable videoCapture

Declarado em

OTPublisherKit.h

videoType

Especifica o tipo de vídeo para a transmissão publicada.

@property (nonatomic, assign) OTPublisherKitVideoType videoType

Discussão

Defina este parâmetro com um dos seguintes valores:

  • OTPublisherKitVideoTypeScreen — Otimiza a codificação de vídeo para o compartilhamento de tela. Para publicar uma transmissão de compartilhamento de tela, você precisa implementar um capturador de vídeo personalizado para o objeto OTPublisherKit. Consulte [OTPublisherKit videoCapture]. Recomenda-se usar uma baixa taxa de quadros (5 quadros por segundo ou menos) com esse tipo de vídeo. Ao utilizar o tipo de vídeo de tela em uma sessão que utilize o OpenTok Media Server, o OTPublisherKitConfigurações As propriedades de fallback de áudio estão definidas como NO por padrão; isso desativa o recurso de fallback apenas para áudio, de modo que o vídeo não se interrompa para os assinantes. Consulte o OpenTok Media Router.
  • OTPublisherKitVideoTypeCamera — Essa é a configuração padrão, que você deve usar ao utilizar uma câmera como fonte de vídeo.

Declarado em

OTPublisherKit.h

videoRender

O OTVideoRender instância usada para renderizar o vídeo a ser transmitido para a sessão do OpenTok .

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

Declarado em

OTPublisherKit.h

Como controlar a predefinição de taxa de bits de vídeo do Publisher

maxVideoBitrate

A taxa de bits máxima do vídeo para a transmissão do editor, em bits por segundo (bps).

@property (nonatomic) int maxVideoBitrate

Discussão

Essa propriedade define um limite máximo explícito para a taxa de bits do vídeo do editor, entre 5.000 e 10.000.000. Ao definir essa propriedade como 0 limpa qualquer limite manual e volta ao comportamento padrão de taxa de bits adaptativa baseada em predefinições, sem limite explícito.

Ao ler essa propriedade, ela retorna a taxa de bits máxima configurada no momento em bps. Se nenhuma taxa de bits manual tiver sido definida, ou se uma predefinição de taxa de bits estiver ativa, o valor é 0.

Um valor de 0 indica que não é aplicado nenhum limite explícito de taxa de bits e que o fluxo opera de acordo com regras de predefinição adaptativa para otimizar a qualidade.

Veja também [OTPublisherKit videoBitratePreset] e Taxa de bits máxima do editor.

Declarado em

OTPublisherKit.h

videoBitratePreset

A estratégia de predefinição da taxa de bits de vídeo aplicada ao fluxo de vídeo do editor.

@property (nonatomic) OTVideoBitratePreset videoBitratePreset

Discussão

Essa propriedade configura uma estratégia de taxa de bits predefinida para equilibrar a qualidade do vídeo e o uso da largura de banda. As predefinições disponíveis incluem o comportamento padrão, economia moderada de largura de banda e modos de economia agressiva de largura de banda. As estratégias predefinidas permitem o controle sobre o comportamento do codificador sem a necessidade de especificar valores explícitos de taxa de bits.

As configurações predefinidas e os ajustes manuais de taxa de bits são mutuamente exclusivos. Configuração maxVideoBitrate substituirá qualquer predefinição e, automaticamente, alterará o valor desta propriedade para OTVideoBitratePresetCustom.

A leitura desta propriedade retorna a predefinição ativa no momento. Se uma taxa de bits personalizada tiver sido definida manualmente, o valor será OTVideoBitratePresetCustom.

O valor padrão é OTVideoBitratePresetDefault.

Veja também [OTPublisherKit maxVideoBitrate] e Taxa de bits máxima do editor.

Declarado em

OTPublisherKit.h

degradationPreference

A política preferencial que o mecanismo de vídeo seguirá ao ajustar a taxa de quadros e a resolução de acordo com condições de largura de banda e CPU limitadas. Consulte OTDegradationPreference para obter uma descrição dos valores possíveis.

@property (nonatomic) OTDegradationPreference degradationPreference

Declarado em

OTPublisherKit.h

targetScalabilityMode

O modo de escalabilidade alvo que foi definido explicitamente por meio de setTargetScalabilityMode:error:. Retorna o último valor passado ao setter ou null, caso o setter nunca tenha sido chamado. Isso reflete a intenção do usuário, e não o modo efetivamente aplicado (que pode diferir devido ao fallback dependente do codec).

@property (nonatomic, readonly) NSString *targetScalabilityMode

Discussão

Este é um recurso em fase beta.

Declarado em

OTPublisherKit.h

– setTargetScalabilityMode:error:

O modo de escalabilidade alvo (SVC – Scalable Video Coding) para este publisher. O modo de escalabilidade controla o número de camadas espaciais (resolução) e temporais (taxa de quadros) que o WebRTC codifica. O modo é aplicado ao caminho de mídia do Media Router.

- (void)setTargetScalabilityMode:(NSString *_Nullable)mode error:(NSError *_Nullable *_Nullable)error

Parâmetros

mode A string do modo de escalabilidade desejado (por exemplo, @“L1T3”). Deve ser uma das seguintes opções: L1T1, L1T2, L1T3, L2T1, L2T2, L2T3, L3T1, L3T2, L3T3.
error Em caso de falha, defina como um OTError com o domínio OT_PUBLISHER_ERROR_DOMAIN e o código OTPublisherInvalidScalabilityMode.

Discussão

O setter pode ser chamado a qualquer momento — não é necessário que a negociação do caminho de mídia tenha sido concluída. O modo será aplicado assim que o caminho de mídia do Media Router for estabelecido.

Se um codec que não seja SVC (VP8, H.264) for negociado no caminho de mídia do Media Router, o modo aplicável mais próximo será utilizado: as camadas espaciais são forçadas a 1, preservando a dimensão temporal (por exemplo, L2T2 → L1T2 quando o VP8 é negociado).

Declarado em

OTPublisherKit.h

Configuração de transformadores de mídia

videoTransformers

Matriz de OTVideoTransformer na ordem em que devem ser aplicados ao fluxo.

@property (nonatomic, strong) NSArray *videoTransformers

Declarado em

OTPublisherKit.h

audioTransformers

Matriz de OTAudioTransformer na ordem em que devem ser aplicados ao fluxo.

@property (nonatomic, strong) NSArray *audioTransformers

Declarado em

OTPublisherKit.h