Adereços | Propriedades | Métodos | Eventos

Adereços

Adereço Tipo Obrigatório Descrição
sessionId String Não ID da sessão do OpenTok. Esse campo é preenchido automaticamente ao envolver OTSubscriber com OTSession
streamId String Não streamId do assinante do OpenTok. Esse campo é preenchido automaticamente dentro do OTSubscriber componente quando streamCreated o evento é disparado a partir da instância nativa
propriedades Objeto Não Propriedades passadas para a instância do assinante nativo
streamProperties Objeto Não Utilizado para atualizar as propriedades de uma instância específica de assinante
manipuladores de eventos Objeto<Função> Não Manipuladores de eventos passados para a instância nativa do assinante
inscrever-se para receber notícias sobre si mesmo Booleano Não Se definido como “true”, o assinante pode se inscrever no próprio fluxo do editor (padrão: “false”)
crianças Função Não Uma propriedade de renderização que permite a renderização individual de cada fluxo

Propriedades

  • inscrever-se no áudio (Booleano) — Se deseja assinar o áudio.

  • inscrever-se no canal (Booleano) — Se deseja se inscrever no canal de vídeo.

  • ativar legendas (Booleano) — Indica se as legendas devem ser ativadas. 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 publicando legendas. Para obter mais informações, consulte o Guia do desenvolvedor do Live Captions.

  • resolução preferencial (String) — Define a resolução preferencial do vídeo do assinante. O formato da string é “larguraxaltura”, em que a largura e a altura são representadas em pixels. Os valores válidos são “1280x720”, “640x480” e “352x288”.

  • preferredFrameRate (Número) — Defina aqui a taxa de quadros desejada (em quadros por segundo). Defina como nulo para remover a taxa de quadros preferencial; nesse caso, o cliente utilizará a taxa de quadros mais alta disponível. Os valores válidos são 30, 15, 7 e 1.

  • volume do áudio (Número) — Define o volume do áudio do assinante, entre 0 e 100. Se o valor não estiver nesse intervalo, ele será ajustado para ficar dentro dele.

  • 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.

O OTSubscriber O componente se inscreverá em um fluxo especificado de uma sessão especificada ao ser montado. O OTSubscriber O componente deixará de se inscrever e cancelará a inscrição ao ser desmontado.

Métodos

getRtcStatsReport(streamId) Obtém o relatório de estatísticas do RTC para o assinante do stream com o ID de stream especificado. Esta é uma operação assíncrona. O objeto OTSubscriber despacha um rtcStatsReport evento em que as estatísticas de RTC do assinante estiverem disponíveis.

Eventos

  • nível de áudio (SubscriberAudioLevelEvent) — Enviado em intervalos regulares com o nível de áudio representativo mais recente. Veja Evento de Nível de Áudio do Assinante

  • audioNetworkStats (Objeto) — Enviado periodicamente para relatar estatísticas de áudio do assinante. Um Estatísticas da Rede de Áudio O objeto é passado para o manipulador de eventos.

  • legendaRecebido (Objeto) — Enviado quando uma legenda é recebida para o assinante. A Legenda recebida O objeto é passado para o manipulador de eventos.

  • conectado () — Enviado quando o assinante se conecta com sucesso ao stream. O objeto do evento inclui um streamId propriedade que identifica o fluxo.

  • desconectado () — Chamado quando o fluxo do assinante é interrompido.

  • erro (Objeto) — Enviado caso o assinante não consiga se conectar ao seu stream.

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

  • rtcStatsReport (Objeto) -- Enviado quando os relatórios de estatísticas do RTC estiverem disponíveis para o assinante, em resposta à chamada da função OTSubscriber.getRtcStatsReport() método. A Evento de Relatório de Estatísticas de RTC do Assinante O objeto é passado para o manipulador de eventos. Esse objeto de evento possui as seguintes propriedades:

    • jsonArrayOfReports propriedade, que é um array JSON de RTCStatsReport para o fluxo de mídia. A estrutura do array JSON é semelhante ao formato do objeto RtcStatsReport implementado em navegadores da web (consulte o Documentação da Mozilla). Veja também esta documentação do W3C.

    • stream -- Um objeto que representa o fluxo do assinante. Esse objeto inclui um streamId propriedade que identifica o fluxo.

  • videoDataReceived () - Enviada quando um quadro de vídeo é decodificado. Embora o assinante se conecte em um tempo relativamente curto, a sincronização do vídeo pode demorar mais. Essa mensagem é enviada após o connected A mensagem é enviada.

  • vídeo desativado (String) — Esta mensagem é enviada quando o assinante deixa de receber o vídeo. Verifique o parâmetro “reason” para saber o motivo pelo qual o vídeo foi interrompido.

  • videoDesativarAviso () - Esta mensagem é enviada quando o OpenTok Media Router detecta que a qualidade da transmissão se deteriorou e que o vídeo será desativado caso a qualidade continue a se deteriorar. Se a qualidade continuar a se deteriorar, o assinante desativará o vídeo e o videoDisabled a mensagem é enviada. Se a qualidade do stream melhorar, a videoDisableWarningLifted A mensagem é enviada.

  • videoDisableWarningLifted () — Esta mensagem é enviada quando a transmissão de vídeo do assinante é iniciada (quando antes não havia vídeo) ou retomada (após o vídeo ter sido desativado). Verifique o parâmetro “reason” para saber o motivo pelo qual o vídeo foi iniciado (ou retomado).

  • videoEnabled (String) — Essa mensagem é enviada quando a transmissão de vídeo do assinante é iniciada (quando antes não havia vídeo) ou retomada (após o vídeo ter sido desativado). Verifique o parâmetro “reason” para saber o motivo pelo qual o vídeo foi iniciado (ou retomado).

  • videoNetworkStats (Objeto) — Enviado periodicamente para relatar as estatísticas de vídeo do assinante. A Evento de Estatísticas da Rede de Vídeos O objeto é passado para o manipulador de eventos.

Exemplo

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      streamProperties: {},
    };

    this.subscriberProperties = {
      subscribeToAudio: false,
      subscribeToVideo: true,
      subscribeToCaptions: false,
    };

    this.sessionEventHandlers = {
      streamCreated: event => {
        const streamProperties = {...this.state.streamProperties, [event.streamId]: {
          subscribeToAudio: true,
          subscribeToVideo: false,
          style: {
            width: 400,
            height: 300,
          },
        }};
        this.setState({ streamProperties });
      },
    };

    this.subscriberEventHandlers = {
      error: (error) => {
        console.log(`There was an error with the subscriber: ${error}`);
      },
      audioNetworkStats: event => {
        console.log('audioNetworkStats', event);
        // { timeStamp: 1643203644833, audioPacketsLost: 0, audioPacketsReceived: 64, audioBytesReceived: 5574 }
      },
      videoNetworkStats: event => {
        console.log('videoNetworkStats', event);
        // videoBytesReceived: 706635, videoPacketsLost: 0, timeStamp: 1643203644724, videoPacketsReceived: 656 }
      },
    };
  }

  render() {
    return (
      <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token" eventHandlers={this.sessionEventHandlers}>
        <OTSubscriber
          properties={this.subscriberProperties}
          eventHandlers={this.subscriberEventHandlers}
          style={{ height: 100, width: 100 }}
          streamProperties={this.state.streamProperties}
        />
      </OTSession>
    );
  }
}

Renderização personalizada de fluxos

É possível controlar a exibição de assinantes individuais em fluxos. Consulte Exibição personalizada dos assinantes.