| 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