Propriedades | objeto de propriedades | Métodos | Eventos

O OTPublisher O componente inicializará um editor e publicará na sessão especificada ao ser montado. Para desativar o editor, desmonte o OTPublisher componente. Lembre-se de que a visualização do editor não é removida, a menos que você desmonte especificamente o OTPublisher componente.

Adicione o componente OTPublisher como um elemento filho do componente OTSession:

class App extends Component {
  constructor(props) {
    super(props);

    this.publisherProperties = {
      publishAudio: true,
      publishVideo: false,
      publishCaptions: true,
      cameraPosition: 'front'
    };

    this.publisherEventHandlers = {
      streamCreated: event => {
        console.log('Publisher stream created!', event);
      },
      streamDestroyed: event => {
        console.log('Publisher stream destroyed!', event);
      }
    };
  }

  render() {
    return (
      <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token">
        <OTPublisher
          properties={this.publisherProperties}
          eventHandlers={this.publisherEventHandlers}
          style={{ height: 100, width: 100 }}
        />
      </OTSession>
    );
  }
}

Adereços

O componente OTPublisher possui as seguintes propriedades, sendo que cada uma delas é opcional:

  • sessionId (String) -- O ID da sessão do OpenTok. Esse campo é preenchido automaticamente ao envolver OTPublisher com OTSession, portanto, geralmente não é necessário definir essa propriedade para o OTPublisher.

  • properties (Objeto) -- Opções para a instância do editor. Consulte a seção a seguir, objeto de propriedades. O properties O objeto é utilizado para a configuração inicial do Publisher. O OTPublisher O objeto monitora alterações em algumas chaves do properties objeto, e realiza as alterações necessárias. Atualmente, são elas:

    • cameraPosition — Define a câmera como “frente” ou “trás”.

    • publishAudio -- Ativa o áudio (true) ou desligado false.

    • publishVideo -- Ativa o vídeo (true) ou desligado false.

    • publishCaptions -- Ativa ou desativa as legendas (true) ou desligado false para o fluxo publicado.

  • eventHandlers (Objeto) — Um objeto que contém pares chave-valor de nomes de eventos e funções de retorno de chamada para manipuladores de eventos. Consulte Eventos.

objeto de propriedades

O properties O objeto passado para o objeto OTPublisher possui as seguintes propriedades:

  • permitirCapturaDeÁudioEnquantoSilenciado (Booleano) Se definido como false, o microfone será desligado automaticamente quando o emissor silenciar seu áudio. O microfone será ligado automaticamente novamente quando o emissor desativar o silenciamento do áudio. Se definido como true, o microfone permanecerá sempre ligado, mesmo quando o emissor silenciar seu áudio. O valor padrão é false.

  • taxa de bits de áudio (Número) — A taxa de bits desejada para o áudio publicado, em bits por segundo. O intervalo de valores suportado é de 6.000 a 510.000. (Valores inválidos são ignorados.) Defina esse valor para ativar o áudio de alta qualidade (ou para reduzir o uso de largura de banda com áudio de qualidade inferior).

    A seguir, apresentamos as configurações recomendadas:

    • 8.000 – 12.000 para voz em banda estreita (NB)
    • 16.000 – 20.000 para fala em banda larga (WB)
    • 28.000 – 40.000 para fala em banda completa (FB)
    • 48.000 a 64.000 para música com banda completa (FB)
    • 64.000 – 128.000 para música estéreo em banda completa (FB)

    O valor padrão é 40.000.

  • audioFallbackEnabled (Objeto) —- Configuração para o recurso de alternância de áudio. O audioFallback O objeto inclui duas propriedades booleanas:

    • publisher — Se deve ser ativado (true) ou desativar (false) Recurso de fallback de áudio do editor. Com o recurso de fallback de áudio do editor ativado, quando a qualidade da transmissão se degrada significativamente (por exemplo, devido às condições da rede), o editor desativa o vídeo para preservar a qualidade do áudio. O padrão é false (o recurso de substituição de áudio da editora está desativado).

    • subscriber — Se deve ser ativado (true) ou desativar (false) alternância de áudio do assinante. Essa configuração se aplica apenas a sessões roteadas (sessões que utilizam o Roteador de mídia OpenTok). O recurso de fallback de áudio do assinante não é compatível em sessões retransmitidas. Com o fallback de áudio do assinante ativado, quando o OpenTok Media Router determina que a qualidade de um fluxo se deteriorou significativamente para um assinante específico, ele desativa o vídeo desse assinante a fim de preservar a qualidade do áudio. Para transmissões que utilizam uma câmera como fonte de vídeo, a configuração padrão é true (o recurso de alternância para áudio está ativado). A configuração padrão é false (o recurso de áudio alternativo está desativado) para transmissões de compartilhamento de tela ( que possuem o videoSource propriedade definida como “screen” no componente OTPublisher). Essa configuração substitui a audioFallbackEnabled propriedade, que será descontinuada.

  • audioFallbackEnabled (Booleano) —- Obsoleto. Foi substituído pelo subscriber propriedade do audioFallback propriedade (ver acima).

  • faixa de áudio (Booleano) — Se essa propriedade for definida como false, o subsistema de áudio não será inicializado para o editor, e definir o publishAudio Essa propriedade não terá efeito. Se o seu aplicativo não precisar usar áudio, recomenda-se definir essa propriedade em vez de usar a propriedade publishAudio, que apenas desativa temporariamente a trilha de áudio.

  • posição da câmera (String) -- A posição preferencial da câmera. Ao definir essa propriedade, se a alteração for possível, o editor utilizará a câmera na posição especificada. Os valores válidos são 'front' (padrão) e 'back'.

  • câmeraLanterna (Booleano) — O modo preferencial de lanterna (tocha) para a câmera. A configuração dessa propriedade indica se o editor deve ativar (true) ou desativar (false, (padrão) a lanterna da câmera, quando disponível. Observe que essa é uma preferência e pode não ter efeito se a câmera ativa não for compatível com a funcionalidade de lanterna (por exemplo, a câmera frontal normalmente não possui lanterna).

  • fatorDeZoomDaCâmera (Número) — O fator de zoom (proporção) preferencial para a câmera. Um valor de 1,0 representa a ausência de zoom (a visualização padrão). O valor varia de 0,5 até o fator de zoom máximo. Valores entre 0,5 e 1,0 representam ultra-grande-angular (zoom out) e valores entre 1,0 e o fator de zoom máximo representam zoom in. O fator de zoom efetivamente aplicado é automaticamente limitado ao intervalo suportado pela configuração da câmera ativa — se a câmera não suportar a ultra-grande angular, os fatores de zoom definidos abaixo de 1,0 não terão efeito e nenhum zoom será aplicado. Para valores acima do fator de zoom máximo suportado pela câmera, o fator de zoom será definido com o valor máximo.

  • preferência de degradação (DegradationPreference) — A política preferencial de redução da qualidade do vídeo em condições de largura de banda ou CPU limitadas.

  • enableDtx (Booleano) - Se deve ser ativado Opus DTX. O valor padrão é false. Definir esse parâmetro como “true” pode reduzir o uso de largura de banda em transmissões que apresentam longos períodos de silêncio.

  • taxa de quadros (Número) — A taxa de quadros desejada, em quadros por segundo, do vídeo. Os valores válidos são 30, 15, 7 e 1. A transmissão publicada utilizará o valor mais próximo compatível com o cliente de publicação. A taxa de quadros pode diferir ligeiramente do valor definido, dependendo do dispositivo do cliente. Além disso, o vídeo só utilizará a taxa de quadros desejada se a configuração do cliente for compatível com ela.

  • maxVideoBitrate (Número) — A taxa de bits máxima do fluxo de vídeo do editor, em bits por segundo (bps). 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. O maxVideoBitrate a propriedade tem precedência sobre o videoBitratePreset propriedade. Se ambas estiverem definidas, apenas a maxVideoBitrate essa propriedade é utilizada. Para obter mais informações, consulte esta documentação.

  • nome (String) -- Uma string que será associada ao stream deste editor. Essa string é exibida na parte inferior dos vídeos do editor e na parte inferior dos vídeos dos assinantes associados ao stream publicado. Se você não especificar um valor, o nome será definido como o nome do dispositivo.

  • codecs de vídeo preferidos (PreferredVideoCodecs) — A prioridade dos codecs de vídeo preferidos para publicação. Pode ser definida como “automático” ou como uma matriz de codecs de vídeo em ordem de preferência. Os codecs de vídeo suportados são “vp8”, “vp9” e “h264”. Os codecs de vídeo diferenciam maiúsculas de minúsculas e devem ser “vp8”, “vp9” ou “h264” para serem válidos. Defina como “automático” para permitir que o SDK selecione a ordem mais adequada. Se omitido, o SDK usa a configuração padrão do projeto. Se codecs de vídeo inválidos forem incluídos na matriz, eles serão ignorados e os codecs de vídeo válidos terão prioridade na ordem em que estão listados. Se for passada uma matriz vazia, for fornecida uma string vazia ou for fornecida uma string diferente de “automático”, o SDK usa a configuração padrão do projeto. Para obter mais informações, consulte esta documentação.

  • publicarÁudio (Booleano) — Se o áudio deve ser publicado. O valor padrão é true.

  • publicarVídeo (Booleano) — Se o vídeo deve ser publicado. O valor padrão é true.

  • publicar legendas (Booleano) — Indica se as legendas devem ser publicadas. Observe que a sessão deve ter as legendas ativadas (por meio do método REST da Video API ou do SDK do servidor) e que o editor deve estar transmitindo áudio. Para obter mais informações, consulte o Guia do desenvolvedor do Live Captions.

  • publishSenderStats (Booleano) — Ativa um canal de estatísticas do remetente para o editor. Atualmente, esse recurso é compatível apenas com chamadas com mais de dois participantes. Para obter mais informações, consulte esta documentação.

  • compartilhamento de tela escalável (Booleano) — Se deve ser permitido o uso de {vídeo escalável}(/developer/guides/scalable-video/) para um editor de compartilhamento de tela (true) ou não (false, o padrão). Isso se aplica apenas a um editor que tenha o videoSource definir como “tela”.

  • scaleBehavior (String) - Define como o vídeo é redimensionado ao ser renderizado. Os valores permitidos são fill (padrão) e fit. Atualmente, essa funcionalidade é compatível apenas com o iOS.

  • resolução (String) - A resolução desejada do vídeo. O formato da string é “larguraxaltura”, em que a largura e a altura são representadas em pixels. Os valores válidos são “1920x1080”, “1280x720”, “640x480” e “352x288”. O vídeo publicado só utilizará a resolução desejada se a configuração do cliente for compatível. Alguns dispositivos e clientes não suportam todas essas configurações de resolução.

  • predefinição de taxa de bits de vídeo (String) - A estratégia predefinida de taxa de bits de vídeo aplicada ao fluxo de vídeo do editor. Defina-a como um dos seguintes valores de string: 'default', 'bw_saver' ou 'extra_bw_saver'. Essa propriedade é ignorada se o videoBitratePreset a propriedade está definida. Se nenhuma das duas estiver definida, o editor utiliza a predefinição padrão. Para obter mais informações, consulte esta documentação.

  • videoContentHint (String) -- Define a dica de conteúdo da trilha de vídeo do stream do editor. É possível definir esse parâmetro como um dos seguintes valores: "", "motion", "details" ou "text". Para obter mais informações, consulte o documentação para o videoContentHint opção do OT.initPublisher() método do SDK do OpenTok.js.

  • videoTrack (Booleano) — Se essa propriedade for definida como false, o subsistema de vídeo não será inicializado para o editor, e definir a propriedade publishVideo não terá efeito. Se sua aplicação não exigir o uso de vídeo, recomenda-se definir essa propriedade em vez de usar a propriedade `publishVideo`, que apenas desativa temporariamente a trilha de vídeo.

  • videoSource (String) -- Para publicar uma transmissão de compartilhamento de tela, defina esta propriedade como “screen”. Se você não especificar um valor, o padrão será “camera”.

Métodos

getRtcStatsReport() Obtém o relatório de estatísticas do RTC para o editor. Esta é uma operação assíncrona. O objeto OTPublisher dispara um rtcStatsReport evento quando as estatísticas do RTC para o editor estiverem disponíveis.

setAudioTransformers() -- Define os transformadores de áudio para o editor.

<P class="important"> <B>Importante:</B> Para usar esse método, é necessário adicionar a biblioteca Vonage Media Transformer ao seu projeto, separadamente do SDK do OpenTok para React Native. Para mais detalhes, consulte Integração com a Biblioteca de Mídia da Vonage. </p>

É suportado um transformador de áudio — o filtro de supressão de ruído.

Esse método possui um parâmetro — uma matriz de objetos que definem cada transformador a ser aplicado ao fluxo do editor. Um objeto transformador possui duas propriedades:

  • name (String) -- Defina este valor como 'NoiseSuppression'.

  • properties (String) -- Defina este parâmetro como uma string vazia.

Para remover transformadores de áudio do fluxo publicado, chame a função OTPublisher.setAudioTransformers() método e passe um array vazio.

Importante: As transformações de mídia, como o filtro de supressão de ruído, consomem muitos recursos e exigem dispositivos com alto poder de processamento. Recomenda-se utilizar essas transformações apenas em dispositivos compatíveis. Consulte a documentação a seguir:

Para obter mais informações sobre transformadores, consulte Utilizando a biblioteca do Vonage Media Processor

setVideoTransformers() -- Define os transformadores de vídeo para o editor.

<P class="important"> <B>Importante:</B> Na versão 2.28.0 ou posterior do SDK do Vonage Video para React Native, para usar este método, é necessário adicionar a Biblioteca de Mídia do Vonage separadamente do SDK do Vonage Video para React Native. Para mais detalhes, consulte Integração com a Biblioteca de Mídia da Vonage. </p>

Esse método possui um parâmetro — uma matriz de objetos que definem cada transformador a ser aplicado ao fluxo do editor. Um objeto transformador possui duas propriedades:

  • name (String) -- Pode ser 'BackgroundBlur' (para um filtro de desfoque de fundo) ou 'BackgroundReplacement' (para um filtro de substituição de imagem de fundo).

  • properties (String) -- Uma string JSON com as propriedades do transformador de vídeo da Vonage.

    Para um transformador de desfoque de fundo, o formato do JSON é:

    `{
       "radius" :"None"
     }`
    

    Os valores válidos para a propriedade “radius” são “None”, “High” e “Low”.

    Para um transformador personalizado de desfoque de fundo, o formato do JSON é:

    `{
      "radius": "Custom",
      "custom_radius": "value"
    }`
    

    custom_radius pode ser qualquer número inteiro positivo.

    Para um transformador de substituição de plano de fundo, o formato do JSON é:

    `{
      "image_file_path": "path/to/image"
    }`
    

    Onde image_file_path é o caminho absoluto do arquivo de uma imagem local a ser usada como plano de fundo virtual. Os formatos de imagem compatíveis são PNG e JPEG.

Para remover transformadores de vídeo do fluxo publicado, chame a função OTPublisher.setVideoTransformers() método e passe um array vazio.

Importante: As transformações de mídia, como o desfoque de fundo e a substituição de fundo, consomem muitos recursos e exigem dispositivos com alto poder de processamento. Recomenda-se utilizar essas transformações apenas em dispositivos compatíveis. Consulte a documentação a seguir:

Para obter mais informações sobre transformadores, consulte Utilizando a biblioteca do Vonage Media Processor

Eventos

  • nível de áudio (Número) — O nível de áudio, de 0 a 1,0. Ajuste esse valor de forma logarítmica para uso no ajuste de um elemento da interface do usuário, como um medidor de volume. Use uma média móvel para suavizar os dados.

  • audioNetworkStats (Objeto) — Enviado periodicamente para relatar estatísticas de áudio para o editor. A EditorÁudioRedeEstatísticasEvento O objeto é passado para o manipulador de eventos.

  • erro (Objeto) -- Enviado caso o editor encontre um erro. Após o envio desta mensagem, o editor pode ser considerado totalmente desligado de uma sessão e pode ser liberado.

  • silenciarForçado -- Enviado quando um moderador força esse cliente a silenciar o áudio.

  • otrnError (Objeto) -- Enviado caso ocorra um erro na comunicação entre a instância do editor nativo e o componente JS.

  • rtcStatsReport (Objeto) -- Enviado quando os relatórios de estatísticas do RTC estiverem disponíveis para o editor, em resposta à chamada da função OTPublisher.getRtcStatsReport() método. A PublisherRtcStatsReportEvent O objeto é passado para o manipulador de eventos. Esse evento possui uma matriz de objetos. Para uma sessão roteada (uma sessão que utiliza o Roteador de mídia OpenTok), esse array inclui um objeto, que define as estatísticas do único fluxo de mídia de vídeo enviado ao OpenTok Media Router. Em uma sessão retransmitida, o array inclui um objeto para cada assinante do fluxo publicado. Cada objeto inclui duas propriedades:

    • connectionId -- Para uma sessão retransmitida (na qual um emissor envia fluxos de mídia individuais para cada assinante), este é o ID exclusivo da conexão do cliente.

    • jsonArrayOfReports -- Um array JSON de relatórios de estatísticas RTC para o fluxo de mídia. A estrutura do array JSON é semelhante ao formato do objeto RtcStatsReport implementado nos navegadores da web (consulte o Documentação da Mozilla). Veja também esta documentação do W3C.

  • streamCreado (Objeto) -- Enviado quando o editor inicia a transmissão. A evento de streaming O objeto é passado para o manipulador de eventos.

  • streamDestruído (Objeto) -- Enviado quando o editor interrompe a transmissão. A evento de streaming O objeto é passado para o manipulador de eventos.

  • vídeo desativado -- Enviado quando o emissor interrompe a transmissão do vídeo devido a opção alternativa de áudio do editor.

  • videoDesativarAviso -- Enviado quando o editor está prestes a entrar no modo alternativo de apenas áudio devido à deterioração das condições da rede. Veja opção alternativa de áudio do editor.

  • videoDisableWarningLifted -- Enviado após um evento `videoDisableWarning`, quando as condições da rede melhorarem. Consulte opção alternativa de áudio do editor.

  • videoEnabled -- Enviado quando o editor retoma a transmissão de vídeo após ela ter sido desativada devido a opção alternativa de áudio do editor.

  • videoNetworkStats (Objeto) -- Enviado periodicamente para relatar estatísticas de áudio para o editor. A EditoraVídeoRedeEstatísticasEvento O objeto é passado para o manipulador de eventos.