O primeiro passo para usar a Video API da Vonage é chamar a OT.initSession() método. Outros métodos do objeto OT verificam os requisitos do sistema e configuram o registro de erros.

Métodos

Nome Descrição
(static) addEventListener(type, listener) Este método está obsoleto.
(static) checkScreenSharingCapability(callback) → {Promise.<ScreenSharingCapabilityResponse>} Verifica se o navegador do cliente oferece suporte à publicação de transmissões de compartilhamento de tela.
(static) checkSystemRequirements() → {Number} Verifica se o sistema é compatível com a Video API da Vonage para WebRTC.
(static) getActiveAudioOutputDevice() Retorna uma Promise que resolve o dispositivo de saída de áudio atual.
(static) getAudioOutputDevices() Enumera os dispositivos de saída de áudio (como alto-falantes) disponíveis para o navegador.
(static) getDevices(callback) → {Promise.<Array.<Device>>} Enumera os dispositivos de entrada de áudio (como microfones) e os dispositivos de entrada de vídeo (câmeras) disponíveis para o navegador.
(static) getSupportedCodecs() → {Promise} Obtém a lista de codecs compatíveis para codificação e decodificação de fluxos de vídeo.
(static) getUserMedia(options) → {Promise} Obtém um objeto MediaStream que utiliza um microfone e uma câmera como fontes de áudio e vídeo.
(static) hasEndToEndEncryptionSupport() → {Boolean} Se o cliente oferece suporte à criptografia de ponta a ponta.
(static) hasMediaProcessorSupport(mediaType) → {Boolean} Se o cliente oferece suporte a processadores de mídia, como filtros de vídeo e áudio.
(static) initPublisher(targetElement, properties, completionHandler) → {Publisher} Inicializa e retorna um objeto Publisher.
(static) initSession(apiKey, sessionId, options) → {Session} Inicializa e retorna o objeto de sessão local correspondente a um ID de sessão especificado.
(static) log(message) Envia uma sequência de caracteres para o console do depurador.
(static) off(type, handler, context) Remove um manipulador de eventos.
(static) on(type, handler, context) Adiciona uma função de manipulador de eventos para um ou mais eventos.
(static) once(type, handler, context) Adiciona uma função de manipulador de eventos para um evento.
(static) registerScreenSharingExtension(kind, id, version) Registre uma extensão para oferecer suporte ao compartilhamento de tela em uma versão mais antiga do Chrome ou do Opera.
(static) removeEventListener(type, listener) Este método está obsoleto.
(static) reportIssue(completionHandler) → {Promise.<string>} Relate que seu aplicativo apresentou um problema.
(static) setAudioOutputDevice() → {Promise} Define o novo dispositivo de saída de áudio.
(static) setLogLevel(logLevel) Define o nível de log da API.
(static) setProxyUrl() Define a URL do servidor proxy IP.
(static) unblockAudio() Faz com que o áudio dos assinantes seja reproduzido em navegadores nos quais o áudio é bloqueado.
(static) upgradeSystemRequirements() Exibe informações sobre os requisitos de sistema para a Video API da Vonage para WebRTC.

(estático) addEventListener(tipo, ouvinte)

Este método está obsoleto. Use on() ou uma vez() em vez disso.

Registra um método como ouvinte de um evento específico.

O objeto OT dispara um tipo de evento — um exception evento. O código a seguir adiciona um ouvinte de evento para o exception evento:

OT.addEventListener("exception", exceptionHandler);

function exceptionHandler(event) {
   alert("exception event. \n  code == " + event.code + "\n  message == " + event.message);
}

Se um manipulador não estiver registrado para um evento, o evento é ignorado localmente. Se a função de escuta do evento não existir, o evento é ignorado localmente.

Gera uma exceção se o listener O nome é inválido.

Parâmetros:
Nome Tipo Descrição
type String A sequência de caracteres que identifica o tipo de evento.
listener função A função a ser chamada quando o objeto OT disparar o evento.

Veja: : - on() - uma vez()

(estático) checkScreenSharingCapability(callback) → {Promise.<ScreenSharingCapabilityResponse>}

Verifica se há suporte para a publicação de transmissões de compartilhamento de tela no navegador do cliente. O objeto retornado pela promessa define se o compartilhamento de tela é compatível, bem como quais fontes de compartilhamento de tela (aplicativo, tela ou janela) são compatíveis. Ele também indica se é necessária uma extensão, se ela está instalada e se está registrada (se for o caso).

const response = await OT.checkScreenSharingCapability();
if (!response.supported || response.extensionRegistered === false) {
// This browser does not support screen sharing
} else if (response.extensionInstalled === false) {
  // Prompt to install the extension
} else {
  // Screen sharing is available.
}

Este objeto possui as seguintes propriedades que indicam suporte à publicação de transmissões de compartilhamento de tela no cliente:

  • extensionInstalled (Booleano) — Nas versões mais antigas do Chrome e do Opera, esse valor está definido como true se a extensão estiver instalada e registrada. No Chrome 72 ou superior, no Firefox 52 ou superior, no Safari 13 ou superior, no Opera 59 ou superior, no Edge 79 ou superior e no Internet Explorer, essa propriedade não está definida.
  • supported (Booleano) — Definir como true se o compartilhamento de tela for compatível com o navegador. Verifique o extensionRequired propriedade para verificar se o navegador exige uma extensão para o compartilhamento de tela.
  • supportedSources (Objeto) — Obsoleto. Em versões mais antigas do navegador, era possível selecionar um tipo de fonte de compartilhamento de tela (como "application", "browser", "screen", ou "window" definindo o videoSource propriedade das opções passadas para o OT.initPublisher() método. No entanto, nos navegadores atuais que oferecem suporte ao compartilhamento de tela, passar qualquer um desses valores resulta no mesmo comportamento — o navegador exibe uma caixa de diálogo na qual o usuário final seleciona a fonte do compartilhamento de tela (que pode ser a tela inteira ou uma janela específica). No Electron, o compartilhamento de tela captura a tela inteira, sem solicitar permissão ao usuário.

O parâmetro “options” também inclui as seguintes propriedades, que se aplicam ao suporte ao compartilhamento de tela em versões mais antigas do Chrome e do Opera (em todos os outros navegadores, essas propriedades são indefinidas):

  • extensionRequired (String) — Definir como "chrome" nas versões mais antigas do Chrome e do Opera, que exigem a instalação de uma extensão de compartilhamento de tela. Essa propriedade não está definida em outros navegadores.
  • extensionRegistered (Booleano) — Nas versões mais antigas do Chrome e do Opera, essa propriedade é definida como true se houver uma extensão de compartilhamento de tela registrada; caso contrário, é definido como false. Em outros navegadores (que não exigem uma extensão), essa propriedade é indefinida. Use a OT.registerScreenSharingExtension() método para registrar uma extensão de compartilhamento de tela em versões mais antigas do Chrome ou do Opera.

O Chrome 72+, o Firefox 52+, o Safari 13+, o Edge 79+ e o Opera 59+ possuem suporte integrado para compartilhamento de tela, sem a necessidade de extensões. (Observe que o suporte ao plug-in da Video API do Vonage para o Internet Explorer foi removido na versão 2.17 da Video API do Vonage.) O compartilhamento de tela é não compatível com navegadores móveis. No Electron, o compartilhamento de tela é compatível se o webPreferences.contextIsolation a opção da janela do navegador do Electron está definida como false ou se o aplicativo usa um script de pré-carregamento para acessar o capturador de tela. (O valor padrão de webPreferences.contextIsolation a opção é true no Electron 12 e false (nas versões anteriores). Para publicar um vídeo de compartilhamento de tela em versões mais antigas do Chrome ou do Opera, o cliente instala uma extensão que permite a publicação de um fluxo de vídeo de compartilhamento de tela no seu domínio. A Video API da Vonage extensões de compartilhamento de tela O exemplo inclui código para criar uma extensão que ofereça suporte ao compartilhamento de tela em versões mais antigas do Chrome e do Opera.

Para obter mais informações, consulte o Compartilhamento de tela da Video API da Vonage guia do desenvolvedor.

Parâmetros:
Nome Tipo Descrição
callback função Callback opcional chamado com o objeto de opções de suporte passado como parâmetro.

Veja: : - OT.initPublisher() - OT.registerScreenSharingExtension()

Devoluções:

Uma promessa com potencial

(estático) checkSystemRequirements() → {Number}

Verifica se o sistema é compatível com a Video API da Vonage para WebRTC. Observe que esse método é chamado automaticamente quando você chama OT.initPublisher() ou OT.initSession(), e, caso o sistema não seja compatível com a Video API da Vonage, a biblioteca OpenTok.js exibe uma mensagem para o usuário. Chame o OT.checkSystemRequirements() método antes de chamar OT.initPublisher() ou OT.initSession() se você não quiser que a biblioteca exiba essa mensagem.

Veja: : - OT.upgradeSystemRequirements()

Devoluções:

Se o sistema é compatível com a Video API da Vonage para WebRTC (1) ou não (0).

(estático) getActiveAudioOutputDevice()

Retorna uma Promise que resolve o dispositivo de saída de áudio atual.

O método retorna uma Promise que resolve um objeto com duas propriedades: deviceId e label, sendo que cada um deles é uma sequência de caracteres.

O deviceId A propriedade é um ID exclusivo do dispositivo. Você pode passar o deviceId como parâmetro do OT.setAudioOutputDevice() método. O deviceId A propriedade é definida como “indefinida” se o usuário não tiver concedido acesso previamente a uma câmera e a um microfone.

O label A propriedade identifica o dispositivo. A label essa propriedade é definida como uma string vazia se o usuário não tiver concedido acesso previamente a uma câmera e a um microfone.

Nota: Atualmente, o suporte a navegadores abrange as versões para desktop do Chrome 49 ou superior, do Edge 17 ou superior, do Opera 36 ou superior e as versões mais recentes do Samsung Internet, do WebView para Android e do WebView para iOS.

Veja: : - OT.getAudioOutputDevices() - OT.setAudioOutputDevice()

(estático) getAudioOutputDevices()

Enumera os dispositivos de saída de áudio (como alto-falantes) disponíveis para o navegador.

O método retorna uma Promise que resolve em um array de objetos correspondentes aos dispositivos de saída de áudio disponíveis. Cada objeto possui duas propriedades: deviceId e label, sendo que cada um deles é uma sequência de caracteres.

O deviceId A propriedade é um ID exclusivo do dispositivo. Você pode passar o deviceId como parâmetro do OT.setAudioOutputDevice() método. O deviceId A propriedade é definida como indefinida se o usuário não tiver concedido acesso previamente a uma câmera e a um microfone. Caso não haja dispositivos de saída de áudio disponíveis, a propriedade é definida como null.

O label A propriedade identifica o dispositivo. A label essa propriedade é definida como uma string vazia se o usuário não tiver concedido acesso previamente a uma câmera e a um microfone.

Notas::

  • Atualmente, o suporte a navegadores abrange as versões para desktop do Chrome 49 ou superior, do Edge 17 ou superior, do Opera 36 ou superior e as versões recentes do Samsung Internet, do WebView para Android e do WebView para iOS.
  • O navegador pode limitar o número de dispositivos de saída de áudio exibidos a um, antes que o usuário conceda acesso à câmera ou ao microfone.

Veja: : - OT.setAudioOutputDevice() - OT.getActiveAudioOutputDevice()

(estático) getDevices(callback) → {Promise.<Array.<Device>>}

Enumera os dispositivos de entrada de áudio (como microfones) e os dispositivos de entrada de vídeo (câmeras) disponíveis para o navegador. Isso retorna uma promessa contendo a matriz de dispositivos. Cada objeto possui três propriedades: kind, deviceId, e label, sendo que cada um deles é uma sequência de caracteres.

O kind a propriedade está definida como "audioInput" para dispositivos de entrada de áudio ou "videoInput" para dispositivos de entrada de vídeo.

O deviceId A propriedade é um ID exclusivo do dispositivo. Você pode passar o deviceId como o audioSource ou videoSource propriedade do options parâmetro do OT.initPublisher() método.

O label A propriedade identifica o dispositivo. A label essa propriedade é definida como uma string vazia se o usuário não tiver concedido acesso previamente a uma câmera e a um microfone.

Parâmetros:
Nome Tipo Descrição
callback função Função de retorno de chamada opcional, chamada quando a lista de dispositivos estiver disponível. Essa função recebe dois parâmetros: - error — Esse valor é atribuído a um objeto de erro quando ocorre um erro ao chamar este método; ele é definido como null quando a chamada for bem-sucedida. - devices — Uma matriz de objetos correspondentes aos microfones e câmeras disponíveis. Observação: O navegador pode limitar o número de dispositivos de entrada de áudio e vídeo retornados a um de cada tipo antes que o usuário conceda acesso à câmera ou ao microfone.

Veja: : - OT.initPublisher()

Devoluções:

Uma promessa que contém a lista de dispositivos

(estático) getSupportedCodecs() → {Promise}

Obtém a lista de codecs compatíveis para codificação e decodificação de fluxos de vídeo.

O exemplo a seguir obtém a lista de codecs compatíveis para codificação e decodificação de fluxos de vídeo:

(async () => {
  try {
    const supportedCodecs = await OT.getSupportedCodecs();
    if (supportedCodecs.videoEncoders.indexOf('H264') < 0 &&
        supportedCodecs.videoDecoders.indexOf('H264') < 0) {
      // The client does not support encoding or decoding H264.
      // Let's recommend using a different browser.
    }
  } catch(err) {
    console.log(err);
  }
})();

Você pode usar as listas de codecs de vídeo compatíveis para determinar se o cliente suporta vídeo, dependendo do codec de vídeo preferencial e do tipo de sessão que está sendo usada. Você pode definir o codec de vídeo preferencial na página “Projeto” do seu Account da Video API da Vonage. Em sessões encaminhadas (sessões que utilizam o Media Router da Video API da Vonage), o codec de vídeo preferencial é utilizado para todos os clientes na sessão. Em sessões retransmitidas, os clientes enviam fluxos diretamente uns aos outros, e cada par de publicação-assinatura tenta encontrar um codec de vídeo comum que ambos possam utilizar. Nesse sentido, o codec de vídeo utilizado pelo par em uma sessão retransmitida pode ser diferente da configuração do codec de vídeo preferencial. Para obter mais informações, consulte a Video API da Vonage Codecs de vídeo guia do desenvolvedor.

Devoluções:

Uma promessa que é resolvida quando a lista de codecs compatíveis estiver pronta. A promessa é resolvida (em caso de sucesso) com um objeto que possui duas propriedades: videoDecoders, uma variedade de codecs de vídeo compatíveis para decodificação e videoEncoders, uma variedade de codecs de vídeo compatíveis para codificação, tais como:

{
   videoDecoders: ['H264', 'VP8', 'VP9'],
   videoEncoders: ['H264', 'VP8', 'VP9']
}

A promessa é rejeitada se ocorrer um erro ao obter a lista.

(estático) getUserMedia(options) → {Promise}

Obtém um objeto MediaStream que utiliza um microfone e uma câmera como fontes de áudio e vídeo. Este método retorna uma promessa que é resolvida quando o usuário concede permissão para usar a câmera ou o microfone (ou ambos) e o objeto MediaStream estiver disponível. A promessa é rejeitada se ocorrer um erro ao obter a mídia ou se o usuário final negar o acesso à câmera ou ao microfone.

Você pode usar esse método para obter objetos `MediaStreamTrack` a serem passados para o audioSource e videoSource opções do OT.initPublisher() método. Por exemplo, chame esse método para obter um MediaStream que utilize o microfone e a câmera como fontes de áudio e vídeo. Em seguida, você pode chamar getVideoTracks()[0] no objeto MediaStream para obter um objeto MediaStreamTrack correspondente ao vídeo da câmera. Em seguida, você pode adicionar o objeto MediaStreamTrack como fonte para um elemento Video em HTML, desenhar esse elemento Video em um elemento Canvas em HTML e aplicar filtros ou efeitos de vídeo ao Canvas. Depois, você pode chamar o captureStream() método do objeto HTMLCanvasElement para obter um objeto MediaStream e chamar getVideoTracks()[0] no objeto MediaStream para obter um objeto MediaStreamTrack de vídeo (com os filtros ou efeitos de vídeo aplicados). Por fim, você pode usar o objeto MediaStreamTrack de vídeo como o videoSource propriedade das opções que você passa para OT.initPublisher(). O Vonage Video API Publisher utilizará a trilha de vídeo (com os filtros e efeitos aplicados) como fonte de vídeo.

Parâmetros:
Nome Tipo Descrição
options Objeto (opcional) Define as configurações do objeto MediaStream. As opções são as mesmas definidas para o OT.initPublisher() método. No entanto, apenas as seguintes propriedades se aplicam a OT.getUserMedia(): - audioSource - autoGainControl - disableAudioProcessing - echoCancellation - enableStereo - facingMode - frameRate - maxResolution - noiseSuppression - resolution - videoSource

Veja: : - As opções (especialmente audioSource e videoSource) do OT.initPublisher() método

Devoluções:

Uma promessa que é resolvida quando o usuário concede permissão para usar a câmera ou o microfone (ou ambos) e o objeto `MediaStream` está disponível. A promessa é rejeitada se ocorrer um erro ao obter a mídia, se o usuário final negar o acesso à câmera ou ao microfone, ou se o método for chamado no Internet Explorer.

(estático) hasEndToEndEncryptionSupport() → {Boolean}

Se o cliente oferece suporte à criptografia de ponta a ponta.

O exemplo a seguir habilita a criptografia de ponta a ponta, caso seja compatível com o cliente:

// Publish in a session with end-to-end encryption, if supported
if (OT.hasEndToEndEncryptionSupport()) {
  session.publish(publisher, error) = {
    ...
  });
}

Veja: : - OT.initSession() - Session.publish()

Devoluções:

Se o cliente suporta criptografia de ponta a ponta (true), ou não (false).

(estático) hasMediaProcessorSupport(mediaType) → {Boolean}

Se o cliente oferece suporte a processadores de mídia, como filtros de vídeo e áudio.

O exemplo a seguir ativa o filtro de desfoque de fundo, caso seja compatível com o cliente:

// Add background blur, if supported
if (OT.hasMediaProcessorSupport('video')) {
  publisherOptions.videoFilter = {
    type: 'backgroundBlur',
  };
}
// Add advanced noise suppression, if supported
if (OT.hasMediaProcessorSupport('audio')) {
  publisherOptions.audioFilter = {
    type: 'advancedNoiseSuppression',
  };
}

const publisher = OT.initPublisher(publisherOptions);
Parâmetros:
Nome Tipo Descrição
mediaType String 'áudio', 'vídeo' ou 'ambos'. O valor padrão é 'ambos'

Veja: : - OT.initPublisher() - Publisher.applyVideoFilter() - Publisher.applyAudioFilter()

Devoluções:

Se o cliente suporta processadores de mídia (true), como filtros de vídeo e áudio, ou não (false).

(estático) initPublisher(elementoAlvo, propriedades, manipuladorDeConclusão) → {Editora}

Inicializa e retorna um objeto Publisher. Em seguida, você pode passar esse objeto Publisher para Session.publish() para publicar um fluxo em uma sessão.

Observação: Se você pretende reutilizar um objeto Publisher para publicar em diferentes sessões (ou na mesma sessão) sequencialmente, adicione um ouvinte de evento para o streamDestroyed evento disparado pelo objeto Publisher (quando ele interrompe a publicação). No ouvinte de eventos, chame o preventDefault() método do objeto de evento para impedir que o vídeo do Editor seja removido da página.

Parâmetros:
Nome Tipo Descrição
targetElement Objeto (Opcional) O elemento DOM ou o id atributo do elemento DOM existente usado para determinar a localização do vídeo do Publisher no DOM HTML. Consulte o insertMode propriedade do properties parâmetro. Se você não especificar um targetElement, o aplicativo acrescenta um novo elemento DOM ao HTML body. O aplicativo gera um erro se houver um elemento cujo ID esteja definido como targetElement O valor não existe no DOM HTML.
properties Objeto (Opcional) Este objeto contém as seguintes propriedades (todas opcionais): - 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 habilitar áudio de alta qualidade (ou para reduzir o uso de largura de banda com áudio de qualidade inferior). As configurações recomendadas são as seguintes: - 8.000 a 12.000 para voz em banda estreita (NB) - 16.000 a 20.000 para voz em banda larga (WB) - 28.000 - 40.000 para voz em banda completa (FB) - 48.000 - 64.000 para música em banda completa (FB) O valor padrão é 40.000. Atualmente, essa configuração não é suportada em transmissões publicadas no Firefox. - audioFallback (Objeto) — Um objeto que contém propriedades que definem se o stream utilizará o recurso de fallback de áudio. O audioFallback O objeto inclui as seguintes propriedades: - publisher (Booleano) — Se a transmissão utilizará o recurso de fallback de áudio do editor (true) ou não (padrão false). O recurso de fallback de áudio do editor está disponível tanto em sessões roteadas (sessões que utilizam o Roteador de mídia da Video API da Vonage) e sessões retransmitidas. Com o recurso de fallback de áudio do emissor ativado, quando for constatado que a qualidade de um emissor se deteriorou significativamente, o vídeo desse emissor é desativado para preservar a qualidade do áudio. Para obter mais informações, consulte a seção “Emissor” vídeo desativado, videoDesativarAviso, videoDisableWarningLifted, e videoEnabled eventos. - subscriber (Booleano) — Se a transmissão utilizará o recurso de fallback de áudio do assinante (true) ou não (false). O recurso de fallback de áudio está disponível em sessões que utilizam o Media Router da Video API da Vonage. Com o recurso de fallback de áudio ativado (configuração padrão), quando o servidor determina que a qualidade de uma transmissão se deteriorou significativamente para um assinante específico, ele desativa o vídeo para esse 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 "application", "screen", ou "window" no OT.initPublisher() opções. Para obter mais informações, consulte o Assinante vídeo desativado evento e O roteador de mídia da Video API da Vonage e os modos de mídia. - audioFilter (Objeto) — Um objeto que contém propriedades que definem o filtro de áudio a ser aplicado ao fluxo de áudio do Publisher. São suportados os seguintes filtros: - Filtro avançado de supressão de ruído — Defina o type propriedade do objeto para "advancedNoiseSuppression".Observação: Os filtros de áudio são compatíveis apenas com as versões mais recentes do Chrome, Electron, Opera, Edge, Samsung Internet e WebView para Android. Eles não são compatíveis com outros navegadores (que não sejam baseados no Chromium) nem no iOS. Você pode verificar se o cliente suporta esse recurso chamando a função OT.hasMediaProcessorSupport('áudio') método. É possível alterar o filtro de áudio chamando o Publisher.applyAudioFilter() método. É possível remover o filtro de áudio chamando o Publisher.clearAudioFilter() método. - fonte de áudio (String, MediaStreamTrack, Boolean ou null) — O ID do dispositivo de entrada de áudio (como um microfone) a ser utilizado pelo editor. É possível obter uma lista dos dispositivos disponíveis, incluindo dispositivos de entrada de áudio, chamando a função OT.getDevices() método. Cada dispositivo listado pelo método possui um ID de dispositivo exclusivo. Se você passar um ID de dispositivo que não corresponda a um dispositivo de entrada de áudio existente, a chamada para OT.initPublisher() falha com um erro (código de erro 1500, “Não foi possível publicar”) passado para a função do manipulador de conclusão. Se você definir essa propriedade como null ou false, o navegador não solicita acesso ao microfone, e nenhum áudio é transmitido. Você também pode definir essa propriedade como um áudio MediaStreamTrack objeto. Isso permite que você use o objeto como fonte de áudio para o stream publicado. Por exemplo, é possível obter uma matriz de objetos MediaStreamTrack de áudio a partir do audioTracks propriedade de um objeto HTMLMediaElement. Ou você pode chamar o getLocalStreams() ou getRemoteStreams() método de um objeto `RTCPeerConnection` para obter uma matriz de objetos `MediaStream` e, em seguida, chamar o getAudioTracks() método de um dos objetos `MediaStream` para obter um objeto `MediaStreamTrack` de áudio. - autoGainControl (Booleano) — Se o controle automático de ganho deve ser ativado para o áudio publicado. Talvez seja recomendável definir esse parâmetro como false ao publicar áudio de alta qualidade (configurando o audioBitrate propriedade do OT.initPublisher() opções). O valor padrão é true. Essa configuração é ignorada se você definir disableAudioProcessing para true (o que desativa o cancelamento de eco, o controle automático de ganho e a supressão de ruído para o fluxo publicado). - desativarGerenciamentoDeDispositivosDeEntradaDeÁudio (Booleano) — Se a troca automática do dispositivo de entrada de áudio deve ser desativada. Talvez você queira definir esse parâmetro como true se você quiser cuidar do gerenciamento do dispositivo por conta própria. Observação: Este é um recurso avançado. Não o utilize sem antes implementar o gerenciamento de dispositivos para seu aplicativo. Se você ativar esse recurso, o dispositivo de entrada de áudio utilizado pelo SDK não vai ser atualizado quando o usuário final trocar de microfone. O valor padrão é false. - desativarProcessamentoDeÁudio (Booleano) — Indica se o cancelamento de eco, o controle automático de ganho e a supressão de ruído devem ser desativados para o áudio transmitido. Talvez seja recomendável definir esse parâmetro como true ao publicar áudio de alta qualidade (configurando o audioBitrate propriedade do OT.initPublisher() opções). O valor padrão é false. - Cancelamento de eco (Booleano) — Se o cancelamento de eco deve ser ativado para o áudio transmitido. Talvez seja recomendável definir esse parâmetro como false ao publicar áudio de alta qualidade (configurando o audioBitrate propriedade do OT.initPublisher() opções). O valor padrão é true. Essa configuração é ignorada se você definir disableAudioProcessing para true (o que desativa o cancelamento de eco, o controle automático de ganho e a supressão de ruído para o fluxo publicado). - ativarEstéreo (Booleano) — Indica se o áudio estéreo deve ser publicado. O valor padrão é false. Observação: Alguns navegadores (como o Chrome 73+) não oferecem suporte ao cancelamento de eco para áudio estéreo (consulte este relatório de problema do Chrome). - enableDtx (Booleano) — Se deve ser ativado Opus DTX. O valor padrão é false. Definir isso como true pode reduzir o uso de largura de banda em transmissões que apresentam longos períodos de silêncio. - facingMode (String) — A posição preferencial da câmera a ser usada para a fonte de vídeo. Geralmente, essa configuração se aplica apenas a dispositivos móveis. Ela pode ser definida como um dos seguintes valores: - "user" — A câmera frontal. - "environment" — A câmera traseira. - "left" — A câmera voltada para o usuário, mas à esquerda (pouco comum). - "right" — A câmera voltada para o usuário, mas à direita (pouco comum). - fitMode (String) — Determina como o vídeo será exibido caso suas dimensões não correspondam às do elemento DOM. É possível definir essa propriedade com um dos seguintes valores: - "cover" — O vídeo é cortado se suas dimensões não corresponderem às do elemento DOM. Essa é a configuração padrão para vídeos que transmitem imagens da câmera. - "contain" — O vídeo é exibido em formato letterbox se suas dimensões não corresponderem às do elemento DOM. Essa é a configuração padrão para vídeos compartilhados na tela. - 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. O stream publicado utilizará o valor mais próximo suportado pelo cliente de publicação. A taxa de quadros pode diferir ligeiramente do valor definido, dependendo do navegador 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. Se o editor especificar uma taxa de quadros, a taxa de quadros real do stream de vídeo será definida como a frameRate propriedade do objeto Stream, embora a taxa de quadros real varie de acordo com as condições variáveis da rede e do sistema. Se o desenvolvedor não especificar uma taxa de quadros, essa propriedade fica indefinida. Além disso, se a fonte de vídeo for um objeto MediaStreamTrack (consulte o videoSource), esse valor é ignorado e a taxa de quadros é definida pelo objeto `MediaStreamTrack`, que você pode obter chamando o método getConstraints() método do objeto MediaStreamTrack. Para sessões que utilizam o Media Router da Video API do Vonage (sessões com o modo de mídia Quando o modo de mídia está definido como “routed”, reduzir a taxa de quadros diminui proporcionalmente a largura de banda máxima utilizada pelo stream. No entanto, em sessões com o modo de mídia definido como “relayed”, reduzir a taxa de quadros não diminui a largura de banda do stream. Você também pode restringir a taxa de quadros do stream de vídeo de um Assinante. Para restringir a taxa de quadros de um assinante, chame a função restrictFrameRate() método do assinante, passando true. (Veja Subscriber.restrictFrameRate().) - altura (Número ou String) — A altura inicial desejada do vídeo do Publisher exibido na página HTML (padrão: 198 pixels). É possível especificar o número de pixels como um número (por exemplo, 300) ou como uma string terminada em “px” (por exemplo, “300px”). Ou você pode especificar uma porcentagem do tamanho do elemento pai, com uma string terminada em “%” (como “100%”). Observação: Para redimensionar o vídeo do editor, ajuste o CSS do elemento DOM do editor (o element propriedade do objeto Publisher) ou (se a altura for especificada como uma porcentagem) seu elemento DOM pai (consulte Redimensionar ou reposicionar um vídeo). - iniciais (String) — As iniciais desse stream. Essas iniciais são exibidas como texto centralizado e em maiúsculas em cada visualização do Editor e do Assinante quando o vídeo está desativado e não há backgroundImageURI está definido. Se backgroundImageURI se estiver definido, ele tem prioridade e é exibido no lugar das iniciais. As iniciais também são definidas como o initials propriedade do objeto Stream. Qualquer sequência de um ou dois caracteres (em qualquer formato) será aceita. Se forem utilizadas iniciais inválidas, nenhum erro será gerado e as iniciais não serão definidas. - insertDefaultUI (Booleano) — Se deve ser utilizada a interface de usuário padrão da Video API da Vonage (true, o padrão) ou não (false). O elemento padrão da interface do usuário contém controles de interface do usuário, um indicador de carregamento de vídeo e o recorte automático do vídeo ou a exibição em formato letterbox, além do próprio vídeo. (Se você deixar insertDefaultUI definir como true, você pode controlar as configurações individuais da interface do usuário usando o fitMode, showControls, e style opções.) Se você definir essa opção como false, o OpenTok.js não insere um elemento de interface do usuário padrão no DOM HTML, e o element A propriedade do objeto Publisher está indefinida. Em vez disso, o objeto Publisher dispara um videoElementCreated evento em que o video elemento (ou, no Internet Explorer, o object elemento que contém o vídeo) é criado. O element A propriedade do objeto de evento é uma referência ao Publisher's video (ou object) elemento. Adicione-o ao DOM HTML para exibir o vídeo. Defina esta opção como false se você quiser mover o Publisher's video (ou object) no DOM HTML. Se você definir isso como false, não defina o targetElement parâmetro. (Isso resulta em um erro que é passado para o OT.initPublisher() função de retorno de chamada.) Para adicionar o vídeo ao DOM HTML, adicione um ouvinte de evento para o videoElementCreated evento e, em seguida, adicione o element propriedade do objeto do evento no DOM HTML. - insertMode (String) — Especifica como o objeto Publisher será inserido no DOM HTML. Consulte o targetElement parâmetro. Essa string pode ter os seguintes valores: - "replace" — O objeto Publisher substitui o conteúdo do targetElement. Essa é a configuração padrão. - "after" — O objeto Publisher é um novo elemento inserido após o targetElement no DOM HTML. (Tanto o Publisher quanto o targetElement têm o mesmo elemento pai.) - "before" — O objeto Publisher é um novo elemento inserido antes do targetElement no DOM HTML. (Tanto o Publisher quanto o targetElement têm o mesmo elemento pai.) - "append" — O objeto Publisher é um novo elemento adicionado como filho do targetElement. Se houver outros elementos filhos, o Publisher é anexado como o último elemento filho do targetElement. - maxResolution (Objeto) — Define a resolução máxima para transmissão. Essa configuração se aplica apenas quando o videoSource a propriedade está definida como "application", "screen", ou "window" (quando o apresentador estiver compartilhando a tela). A resolução da transmissão corresponderá à região da tela capturada, a menos que essa região seja maior do que a maxResolution configuração. Defina-a como um objeto que possua duas propriedades: width e height (ambos os números). O valor máximo para cada um dos width e height O número de propriedades é 1920, e o valor mínimo é 10. - espelho (Booleano) — Se a imagem de vídeo do editor é exibida invertida na página do editor. O valor padrão é true (a imagem do vídeo está invertida), exceto no caso de um vídeo de compartilhamento de tela (quando o videoSource a propriedade está definida como "application", "screen", ou "window" (nesse caso, o valor padrão é false). Essa propriedade não afeta a exibição do vídeo nas visualizações dos assinantes. - nome (String) — O nome deste stream. O nome aparece na parte inferior dos vídeos dos assinantes. O valor padrão é "" (uma string vazia). Definir esse valor como uma string com mais de 1.000 caracteres resulta em uma exceção de tempo de execução. - supressão de ruído (Booleano) — Se a supressão de ruído deve ser ativada para o áudio publicado. Talvez seja recomendável definir esse parâmetro como false ao publicar áudio de alta qualidade (configurando o audioBitrate propriedade do OT.initPublisher() opções). O valor padrão é true. Essa configuração é ignorada se você definir disableAudioProcessing para true (o que desativa o cancelamento de eco, o controle automático de ganho e a supressão de ruído para o fluxo publicado). - codecs de vídeo preferidos ('automatic' ou Matriz de 'vp8', 'vp9', 'h264') — Define a prioridade dos codecs de vídeo preferidos para publicação. Se omitido, o SDK usa a configuração padrão do projeto. Defina como 'automatic' para permitir que o SDK selecione a ordem mais adequada. Ou forneça uma matriz explícita para especificar a preferência de codec (por exemplo, ['vp9', 'h264']). Se for inválido (como um array vazio ou um codec não compatível), a inicialização do publisher falha com um OT_INVALID_PARAMETER erro. - publicarÁudio (Booleano) — Se o áudio deve ser publicado inicialmente para a transmissão (padrão: true). Essa configuração se aplica quando você passa o objeto Publisher em uma chamada para o Session.publish() método. - publicarVídeo (Booleano) — Se o vídeo deve ser publicado inicialmente para a transmissão (padrão: true). Essa configuração se aplica quando você passa o objeto Publisher em uma chamada para o Session.publish() método. - publicar legendas (Booleano) — Se as legendas devem ser publicadas inicialmente para a transmissão (padrão: false). Essa configuração se aplica quando você passa o objeto Publisher em uma chamada para o Session.publish() método. Essa propriedade não terá efeito se as legendas não tiverem sido ativadas no nível da sessão. Para obter mais informações, consulte o Legendas em tempo real guia do desenvolvedor. - publishSenderStats (Booleano) — Se deve ser ativado um canal de estatísticas do remetente para o fluxo (padrão: false). Essa configuração se aplica quando você passa o objeto Publisher em uma chamada para o Session.publish() método. - resolução (String) — A resolução desejada do vídeo. O formato da string é "widthxheight", onde a largura e a altura são representadas em pixels. Os valores válidos são "1920x1080", "1280x720", "640x480", e "320x240". O vídeo publicado só utilizará a resolução desejada se a configuração do cliente for compatível com ela. Alguns navegadores e clientes não oferecem suporte a todas essas configurações de resolução. A resolução solicitada de um fluxo de vídeo é definida como a videoDimensions.width e videoDimensions.height propriedades do objeto Stream. Se você não especificar uma resolução, o navegador usa a resolução padrão da câmera. A maioria das câmeras físicas tem uma resolução padrão de 640x480, mas outras câmeras, especialmente as câmeras virtuais, têm resoluções padrão diferentes. Se o sistema cliente não for compatível com a resolução solicitada, o stream utilizará a próxima configuração maior compatível. A resolução real utilizada pelo Publisher é retornada pelo videoHeight() e videoWidth() métodos do objeto Publisher. A resolução real de um fluxo de vídeo do Subscriber é retornada pelo videoHeight() e videoWidth() propriedades do objeto Subscriber. Elas podem diferir dos valores do resolution propriedade passada como o properties propriedade do OT.initPublisher() método: se o navegador não suportar a resolução solicitada, esse valor será ignorado. Além disso, se a fonte do vídeo for um objeto `MediaStreamTrack` (consulte o videoSource), esse valor é ignorado e a resolução é definida pelo objeto `MediaStreamTrack`, que você pode obter chamando o método getConstraints() método do objeto MediaStreamTrack. - compartilhamento de tela escalável (Booleano) — Se permite o uso de vídeo escalável para uma editora que tenha o videoSource definir como "screen" (true) ou não (false, o padrão). - scalableVideo (Booleano) — Se deve ser permitido (true, (padrão) ou desativar (false) vídeo escalável para o editor. Isso só se aplica em uma sessão roteada (aquela que utiliza o Roteador de mídia da Video API da Vonage). Observação: Por padrão, o vídeo escalável está desativado nos vídeos de compartilhamento de tela. Você pode definir o scalableScreenshare opção de true para habilitar o vídeo escalável para transmissões com compartilhamento de tela. No entanto, a configuração scalableVideo para false desativa o vídeo escalável para qualquer fonte de vídeo (e o scalableScreenshare essa configuração é ignorada para transmissões de compartilhamento de tela). - mostrar controles (Booleano) — Se os controles de interface de usuário integrados devem ser exibidos (padrão: true) para o Publisher. Esses controles incluem a exibição do nome, o indicador de nível de áudio e o botão de controle do microfone. É possível desativar todos os controles da interface do usuário definindo esta propriedade como false. É possível controlar a exibição de controles individuais da interface do usuário mantendo essa propriedade definida como true (o padrão) e definir propriedades individuais do style propriedade. - estilo (Objeto) — Um objeto que contém propriedades que definem a aparência inicial dos controles da interface do usuário do Publisher. O style O objeto inclui as seguintes propriedades: - audioLevelDisplayMode (String) — Como exibir o indicador de nível de áudio. Os valores possíveis são: "auto" (o indicador é exibido quando o vídeo está desativado), "off" (o indicador não é exibido), e "on" (o indicador fica sempre visível). - archiveStatusDisplayMode (String) — Como exibir o indicador de status do arquivo. Os valores possíveis são: "auto" (o indicador é exibido quando a sessão está sendo gravada), "off" (o indicador não é exibido). Se você desativar o indicador de exibição do status do arquivo, poderá exibir suas próprias notificações na interface do usuário com base no archiveStarted e archiveStopped eventos disparados pelo objeto Session. - backgroundImageURI (String) — Um URI de uma imagem a ser exibida como imagem de fundo quando um vídeo não estiver sendo exibido. (Um vídeo pode não ser exibido se você chamar publishVideo(false) no objeto Publisher). É possível passar um URI http ou https para o caminho de um arquivo PNG, JPEG ou GIF não animado. Também é possível usar o data Esquema URI (em vez de http ou https) e passar dados PNG criptografados em base-64, como os obtidos do Publisher.getImgData() método. (Por exemplo, você poderia definir a propriedade com um valor retornado pela chamada de getImgData() em um objeto Publisher anterior.) Se a URL ou os dados da imagem forem inválidos, a propriedade é ignorada (a tentativa de definir a imagem falha sem exibir mensagem de erro). - buttonDisplayMode (String) — Como exibir os controles do microfone Os valores possíveis são: "auto" (os controles são exibidos quando o stream é exibido pela primeira vez e quando o usuário passa o mouse sobre a exibição), "off" (os controles não são exibidos), e "on" (os controles são sempre exibidos). - nameDisplayMode (String) — Indica se o nome do stream deve ser exibido. Os valores possíveis são: "auto" (o nome é exibido quando o stream é exibido pela primeira vez e quando o usuário passa o mouse sobre a exibição), "off" (o nome não é exibido), e "on" (o nome é sempre exibido). - videoDisabledDisplayMode (String) — Se deve exibir o indicador de vídeo desativado e os ícones de aviso de vídeo desativado para o Publisher. Esses ícones indicam que o vídeo foi desativado (ou corre o risco de ser desativado, no caso do ícone de aviso) devido à baixa qualidade da transmissão. Esse estilo se aplica apenas ao objeto Publisher. Os valores possíveis são: "auto" (os ícones aparecem automaticamente quando o vídeo exibido é desativado ou corre o risco de ser desativado devido à baixa qualidade da transmissão), "off" (não exibir os ícones), e "on" (exibir os ícones). A configuração padrão é "auto". - videoContentHint (String) — Define a dica de conteúdo da trilha de vídeo do stream do editor. Isso permite que os navegadores utilizem métodos de codificação ou processamento mais adequados ao tipo de conteúdo. É possível definir esse parâmetro como um dos seguintes valores: - "" — Não é fornecida nenhuma dica (padrão). - "motion" — A trilha deve ser tratada como se contivesse vídeo, nos casos em que o movimento é importante. Por exemplo, você pode usar essa configuração para uma transmissão de compartilhamento de tela que contenha vídeo. - "detail" — A trilha deve ser tratada como se os detalhes do vídeo fossem extremamente importantes. Por exemplo, você pode usar essa configuração para uma transmissão de compartilhamento de tela que contenha conteúdo de texto, desenhos ou ilustrações em linha. - "text" — A faixa deve ser tratada como se os detalhes do texto fossem extremamente importantes. Por exemplo, você pode usar essa configuração para uma transmissão de compartilhamento de tela que contenha conteúdo de texto. Com as dicas de conteúdo “text” e “detailed”, o navegador tenta manter alta resolução, mesmo que precise reduzir a taxa de quadros do vídeo. Para a dica de conteúdo “motion”, o navegador reduz a resolução para evitar que a taxa de quadros fique lenta. Você pode ler mais sobre essas opções no Rascunho de Trabalho do W3C. Talvez seja interessante definir a dica de conteúdo de vídeo para otimizar o desempenho dos vídeos de compartilhamento de tela. Por exemplo, você pode defini-la como "text" ao compartilhar uma tela que contenha muito texto (como uma apresentação de slides). O Chrome 60+, o Safari 12.1+, o Edge 79+, o Opera 47+, as versões recentes do Samsung Internet, o WebView no Android 70+ e o WebView no iOS 12.2+ oferecem suporte a dicas de conteúdo de vídeo. Consulte também o Publisher.setVideoContentHint() método e o tópico do guia do desenvolvedor sobre esse recurso. - videoFilter (Objeto) — Um objeto que contém propriedades que definem o filtro de vídeo a ser aplicado ao fluxo de vídeo do Editor. São suportados os seguintes filtros: - Filtro de desfoque de fundo — Defina o type propriedade do objeto para "backgroundBlur". Um objeto de filtro de desfoque de fundo inclui um blurStrength propriedade que define o raio de desfoque e é opcional. Defina-a como "low" ou "high" (padrão). - Filtro de substituição de plano de fundo — Defina o type propriedade do objeto para "backgroundReplacement". Um objeto de filtro de substituição de plano de fundo inclui um backgroundImgUrl propriedade que define a URL da imagem de fundo a ser usada. Também são aceitos BLOBs de imagem (uma sequência de caracteres codificada em Base64 contendo os dados da imagem). São suportados os seguintes formatos de imagem: BMP, PNG, JPEG e GIF. A imagem de fundo é redimensionada para se adequar às dimensões do vídeo do editor. Para obter melhores resultados, use uma imagem com as mesmas dimensões (ou, pelo menos, a mesma proporção) do vídeo publicado. Defina o mirror opção para false ao chamar o OT.initPublisher() método para fazer com que a imagem de fundo apareça na orientação correta (sem estar invertida) na página do editor.Observação: Os filtros de vídeo são compatíveis apenas com as versões mais recentes do Chrome, Firefox, Electron, Opera, Edge, Samsung Internet, WebView do Android e com as versões mais recentes do Safari (versão 26+) e do WebView do iOS (versão 26+). Você pode verificar se o cliente é compatível com esse recurso chamando o OT.hasMediaProcessorSupport('vídeo') método. É possível alterar o filtro de vídeo chamando o Publisher.applyVideoFilter() método. É possível remover o filtro de vídeo chamando o Publisher.clearVideoFilter() método. - videoSource (String, MediaStreamTrack, Boolean ou null) — O ID do dispositivo de entrada de vídeo (como uma câmera) a ser utilizado pelo editor. É possível obter uma lista dos dispositivos disponíveis, incluindo dispositivos de entrada de vídeo, chamando o método OT.getDevices() método. Cada dispositivo listado pelo método possui um ID de dispositivo exclusivo. Se você passar um ID de dispositivo que não corresponda a um dispositivo de entrada de vídeo existente, a chamada para OT.initPublisher() falha com um erro (código de erro 1500, “Não foi possível publicar”) passado para a função do manipulador de conclusão. Se você definir essa propriedade como null ou false, o navegador não solicita acesso à câmera, e nenhum vídeo é publicado. Em uma chamada apenas de voz, defina esta propriedade como null ou false para cada Editor. Para publicar uma transmissão de compartilhamento de tela, defina esta propriedade como "screen". Em versões mais antigas do navegador, também era possível passar "application" ou "window" para especificar um tipo de fonte de compartilhamento de tela. No entanto, nos navegadores atuais que oferecem suporte ao compartilhamento de tela, passar qualquer um desses valores resulta no mesmo comportamento — o navegador exibe uma caixa de diálogo na qual o usuário final seleciona a fonte de compartilhamento de tela (que pode ser a tela inteira ou uma janela específica). No Electron, o compartilhamento de tela captura a tela inteira, sem solicitar permissão ao usuário. Para transmissões de compartilhamento de tela, os valores padrão para as demais propriedades são os seguintes: audioFallbackEnabled == false, maxResolution == {width: 1920, height: 1920}, mirror == false, scaleMode == "fit". Além disso, o padrão scaleMode A configuração para os assinantes da transmissão é "fit". No Safari, a inicialização de um emissor de compartilhamento de tela sem um manipulador de gestos do usuário pode gerar um InvalidAccessError erro. Você também pode definir essa propriedade como um vídeo MediaStreamTrack objeto. Isso permite que você use o objeto `MediaStreamTrack` como fonte de vídeo para a transmissão publicada. Por exemplo, é possível obter um objeto `CanvasCaptureMediaStream` chamando o método captureStream() método de um HTMLCanvasElement e, em seguida, você pode chamar o getVideoTracks() método do objeto `CanvasCaptureMediaStream` para obter um objeto `MediaStreamTrack` de vídeo. Ou você pode obter uma matriz de objetos `MediaStreamTrack` de vídeo a partir do videoTracks propriedade de um objeto HTMLMediaElement. Ou você pode chamar o getLocalStreams() ou getRemoteStreams() método de um objeto `RTCPeerConnection` para obter uma matriz de objetos `MediaStream` e, em seguida, chamar o getVideoTracks() método de um dos objetos MediaStream para obter uma matriz de objetos MediaStreamTrack de vídeo. Observe que, por padrão, o editor usa um microfone como fonte de áudio; portanto, certifique-se de definir o audioSource opção caso deseje usar um MediaStreamTrack como fonte de áudio ou caso não queira publicar uma faixa de áudio. O padrão mirror A configuração para um Publisher com uma fonte de vídeo MediaStreamTrack é false. Você também pode ligar para OT.getUserMedia() para obter um objeto MediaStream que utilize o microfone e a câmera como fontes de áudio e vídeo. - largura (Número ou String) — A largura inicial desejada do vídeo do Publisher exibido na página HTML (padrão: 264 pixels). É possível especificar o número de pixels como um número (por exemplo, 400) ou como uma string terminada em “px” (por exemplo, “400px”). Ou você pode especificar uma porcentagem do tamanho do elemento pai, com uma string terminada em “%” (como “100%”). Observação: Para redimensionar o vídeo do editor, ajuste o CSS do elemento DOM do editor (o element propriedade do objeto Publisher) ou (se a largura for especificada como uma porcentagem) seu elemento DOM pai (consulte Redimensionar ou reposicionar um vídeo).
completionHandler função (Opcional) Uma função a ser chamada quando o método tiver sucesso ou falhar na inicialização de um objeto Publisher. Essa função recebe um parâmetro — error. Se for bem-sucedido, o error o objeto está definido como null. Em caso de falha, o error O objeto possui duas propriedades: code (um número inteiro) e message (uma string), que identifica a causa da falha. O método é bem-sucedido quando o usuário concede acesso à câmera e ao microfone. O método falha se o usuário negar acesso à câmera e ao microfone. O completionHandler A função é chamada antes que o Publisher envie um accessAllowed evento (sucesso) ou um accessDenied evento (falha). O código a seguir adiciona um completionHandler ao chamar o OT.initPublisher() método: var publisher = OT.initPublisher('publisher', null, function (error) { if (error) { console.log(error); } else { console.log("Publisher initialized."); } });

Veja: : - Session.publish()

Devoluções:

O objeto Publisher.

(estático) initSession(apiKey, sessionId, options) → {Sessão}

Inicializa e retorna o objeto de sessão local correspondente a um ID de sessão especificado.

Você se conecta a uma sessão da Video API da Vonage usando o connect() método do objeto Session retornado pelo OT.initSession() método. Observe que chamar OT.initSession() não inicia comunicações com a nuvem. Ele simplesmente inicializa o objeto Session, que você pode usar para se conectar (e para realizar outras operações após a conexão).

Observe que é possível inicializar apenas um objeto Session por ID de sessão. Ao chamar OT.initSession() uma segunda vez com o mesmo ID de sessão retorna o objeto Session criado anteriormente. No entanto, é possível inicializar vários objetos Session para diferentes sessões (com diferentes IDs de sessão) a fim de se conectar a várias sessões.

Quando o cliente se desconecta da sessão (e a sessão envia um sessionDisconnected evento), você pode reutilizar o objeto Session para se reconectar à sessão. No entanto, o objeto Session manterá todos os manipuladores de evento existentes associados a ele. Você pode remover todos os manipuladores de evento chamando o off() método do objeto Session (sem passar parâmetros).

Para ver um exemplo, consulte Session.connect().

Parâmetros:
Nome Tipo Descrição
apiKey String Sua chave da Video API da Vonage (consulte sua Página da conta da Video API da Vonage).
sessionId String O ID da sessão que identifica a sessão da Video API da Vonage. Para obter mais informações, consulte Criação de sessão.
options Objeto Um objeto que inclui opções opcionais para inicializar a sessão. Esse objeto inclui as seguintes propriedades: - connectionEventsSuppressed — (Booleano) Defina esta propriedade como true para dar suporte a grandes sessões de vídeo interativas. Isso impede que o objeto Session envie connectionCreated e connectionDestroyed eventos quando outros clientes se conectam ou se desconectam da sessão. (Além disso, o servidor da Video API do Vonage não envia esses eventos ao cliente web.) Para obter mais informações, consulte Supressão de eventos de conexão nos guias para desenvolvedores da Video API da Vonage. - ipWhitelist — (Booleano) Isso está disponível como um recurso adicional. Defina isso como true se a lista de endereços IP autorizados estiver ativada para o seu projeto. O valor padrão é false. - iceConfig — (Objeto) Este objeto inclui as seguintes propriedades: - includeServers (String) — Defina este valor como 'custom' e o cliente utilizará apenas os servidores TURN personalizados que você fornecer no customServers matriz. Defina isso como 'all' (a configuração padrão) e o cliente utilizará tanto os servidores TURN personalizados que você fornecer quanto os servidores TURN da OpenTok. - transportPolicy (String) — Defina este valor como 'all' (padrão) e o cliente utilizará todos os tipos de transporte ICE (como host, srflx e TURN) para estabelecer a conectividade de mídia. Defina isso como 'relay' para forçar sempre a conectividade por meio do TURN e ignorar todos os outros candidatos a ICE. - customServers (Matriz) — Defina aqui uma matriz de objetos que definam seus servidores TURN personalizados. Cada objeto corresponde a um servidor TURN personalizado e inclui as seguintes propriedades: urls — uma string ou uma matriz de strings, em que cada string é uma URL compatível com o servidor TURN (e pode ser apenas uma URL); username — o nome de usuário (cadeia de caracteres) do servidor TURN definido neste objeto; credential — a sequência de credenciais para o servidor TURN definido neste objeto. Esse recurso faz parte do TURN configurável recurso adicional. Para obter mais informações e um exemplo de código, consulte o Servidores TURN configuráveis guia do desenvolvedor. - encryptionSecret — (String) Este é o segredo de criptografia inicial utilizado pelo recurso de criptografia de ponta a ponta. Consulte o guia do desenvolvedor. - singlePeerConnection — (Booleano) Ativa o Conexão com um único par Recurso (SPC). O valor padrão é false (O SPC está desativado). - sessionMigration — (Booleano) Ativa o recurso de migração de sessão, permitindo que o cliente permaneça conectado durante a rotação de servidores. O valor padrão é false (a migração de sessão não está habilitada). Para obter mais informações, consulte Rotação de servidores e migração de sessões.
Devoluções:

O objeto de sessão por meio do qual ocorrerão todas as interações futuras com a sessão.

(estático) log(mensagem)

Envia uma string para o console do depurador. No entanto, a função só registra no console se você tiver definido o nível de registro como OT.LOG ou OT.DEBUG, ligando para OT.setLogLevel(OT.LOG) ou OT.setLogLevel(OT.DEBUG).

Parâmetros:
Nome Tipo Descrição
message String A sequência de caracteres a ser registrada.

Veja: : - OT.setLogLevel()

(estático) off(tipo, manipulador, contexto)

Remove um manipulador de eventos.

Passe um nome de evento e um método manipulador; o manipulador será removido para esse evento:

OT.off("exceptionEvent", exceptionEventHandler);

Se você passar um nome de evento e não método handler, todos os handlers são removidos para esses eventos:

OT.off("exceptionEvent");

O método também suporta uma sintaxe alternativa, na qual o primeiro parâmetro é um objeto que consiste em um mapa hash de nomes de eventos e funções de manipulador, e o segundo parâmetro (opcional) é o contexto para a correspondência dos manipuladores:

OT.off(
  {
    exceptionEvent: exceptionEventHandler
  },
  this
);
Parâmetros:
Nome Tipo Descrição
type String (Opcional) A sequência de caracteres que identifica o tipo de evento. É possível usar um espaço para especificar vários eventos, como em “nomeDoEvento1 nomeDoEvento2 nomeDoEvento3”. Se você não passar nenhum type valor (ou outros argumentos), todos os manipuladores de eventos são removidos do objeto.
handler função (Opcional) A função de manipulador de eventos a ser removida. Se você não passar nenhum handler, todos os manipuladores de evento são removidos para o evento especificado type.
context Objeto (Opcional) Se você especificar um context, o manipulador de eventos é removido para todos os eventos especificados e para todos os manipuladores que utilizam o contexto especificado.

Veja: : - on() - uma vez() - Eventos

(estático) on(tipo, manipulador, contexto)

Adiciona uma função de manipulador de eventos para um ou mais eventos.

O objeto OT dispara um tipo de evento — um exception evento. O código a seguir adiciona um ouvinte de evento para o exception evento:

OT.on("exception", function (event) {
  // This is the event handler.
});

Você também pode passar um terceiro context parâmetro (que é opcional) para definir o valor de this no método do manipulador:

OT.on("exception",
  function (event) {
    // This is the event handler.
  }),
  session
);

Se você não adicionar um manipulador para um evento, o evento será ignorado localmente.

Parâmetros:
Nome Tipo Descrição
type String A sequência de caracteres que identifica o tipo de evento.
handler função A função de tratamento responsável por processar o evento. Essa função recebe o objeto do evento como parâmetro.
context Objeto (Opcional) Define o valor de this na função do manipulador de eventos.

Veja: : - off() - uma vez() - Eventos

(estático) once(tipo, manipulador, contexto)

Adiciona uma função de manipulador de eventos para um evento. Assim que o manipulador for chamado, o método de manipulador especificado é removido como manipulador desse evento. (Quando você usa o OT.on() método para adicionar um manipulador de eventos; o manipulador é não é removido quando é chamado.) O OT.once() O método é equivalente a chamar o OT.on() método e chamada OT.off() na primeira vez que o manipulador for chamado.

O código a seguir adiciona um manipulador de evento único para o exception evento:

OT.once("exception", function (event) {
  console.log(event);
}

Você também pode passar um terceiro context parâmetro (que é opcional) para definir o valor de this no método do manipulador:

OT.once("exception",
  function (event) {
    // This is the event handler.
  },
  session
);

O método também suporta uma sintaxe alternativa, na qual o primeiro parâmetro é um objeto que consiste em um mapa hash de nomes de eventos e funções de tratamento, e o segundo parâmetro (opcional) é o contexto para isso em cada função de tratamento:

OT.once(
  {exeption: function (event) {
    // This is the event handler.
    }
  },
  session
);
Parâmetros:
Nome Tipo Descrição
type String A string que identifica o tipo de evento. É possível especificar vários nomes de eventos nessa string, separando-os por um espaço. O manipulador de eventos processará a primeira ocorrência desses eventos. Após o primeiro evento, o manipulador é removido (para todos os eventos especificados).
handler função A função de tratamento responsável por processar o evento. Essa função recebe o objeto do evento como parâmetro.
context Objeto (Opcional) Define o valor de this na função do manipulador de eventos.

Veja: : - on() - uma vez() - Eventos

(estático) registerScreenSharingExtension(tipo, id, versão)

Registre uma extensão para oferecer suporte ao compartilhamento de tela em uma versão mais antiga do Chrome ou do Opera.

Observação: Não é necessária uma extensão de compartilhamento de tela no Chrome 72 ou superior nem no Opera 59 ou superior. O usuário final é solicitado a conceder acesso à tela, da mesma forma que faria ao conceder acesso à câmera. Você só precisa de uma extensão de compartilhamento de tela para versões mais antigas do Opera e do Chrome.

Use o OT.checkScreenSharingCapability() método para verificar se uma extensão é necessária, registrada e instalada.

A Video API da Vonage extensões de compartilhamento de tela O repositório inclui código para criar uma extensão que oferece suporte ao compartilhamento de tela.

Parâmetros:
Nome Tipo Descrição
kind String Defina este parâmetro como "chrome". Atualmente, só é possível registrar uma extensão de compartilhamento de tela para versões mais antigas do Chrome e do Opera.
id String O ID da sua extensão de compartilhamento de tela. Você pode encontrar esse ID em chrome://extensions.
version Número A versão da extensão de compartilhamento de tela da extensões de compartilhamento de tela repo. Defina esse valor se estiver usando a versão 2 ou posterior. Por exemplo, se estiver usando a versão 2, defina esse valor como 2. Na versão 2, o cliente pode usar a extensão imediatamente após instalá-la, sem precisar recarregar a página.

Veja: : - OT.initPublisher() - OT.checkScreenSharingCapability()

(estático) removeEventListener(tipo, ouvinte)

Este método está obsoleto. Use off() em vez disso.

Remove um ouvinte de evento para um evento específico.

Gera uma exceção se o listener O nome é inválido.

Parâmetros:
Nome Tipo Descrição
type String A sequência de caracteres que identifica o tipo de evento.
listener função A função do ouvinte de evento a ser removida.

Veja: : - off()

(estático) reportIssue(completionHandler) → {Promise.<string>}

Relate que seu aplicativo apresentou um problema. Você pode usar o ID do problema com Inspetor ou ao discutir um problema com a equipe de suporte da API da Vonage.

Parâmetros:
Nome Tipo Descrição
completionHandler função Função opcional que é chamada quando a chamada a este método é bem-sucedida ou falha. Essa função possui dois parâmetros. O primeiro parâmetro é um Erro objeto que é definido quando a chamada para o reportIssue() o método falhar (por exemplo, se o cliente não estiver conectado à rede) ou null quando a chamada para o reportIssue() O método é executado com sucesso. O segundo parâmetro é definido como o ID do relatório (uma sequência de caracteres exclusiva) quando a chamada é bem-sucedida.
Devoluções:

Uma promessa associada ao ID do relatório

(estático) setAudioOutputDevice() → {Promise}

Define o novo dispositivo de saída de áudio.

O método retorna uma Promise que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a Promise é rejeitada.

Nota: Atualmente, a compatibilidade com navegadores abrange as versões para desktop do Chrome 49 ou superior, Firefox 116 ou superior, Edge 17 ou superior, Opera 36 ou superior, Safari 26 ou superior e o WebView no iOS 26 ou superior.

Veja: : - OT.getAudioOutputDevices() - OT.getActiveAudioOutputDevice()

Devoluções:

Uma promessa que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada.

(estático) setLogLevel(logLevel)

Define o nível de log da API.

Chamando OT.setLogLevel() define o nível de registro para as mensagens de log de execução que são geradas pela biblioteca da Video API do Vonage. O valor padrão para o nível de registro é OT.ERROR.

A biblioteca JavaScript da Video API da Vonage exibe mensagens de log no console do depurador (como o Firebug), caso haja um.

O exemplo a seguir registra o ID da sessão no console, chamando OT.log(). O código também registra uma mensagem de erro quando tenta publicar um stream antes que você tenha se conectado à sessão (ao chamar Session.connect()).

OT.setLogLevel(OT.LOG);
session = OT.initSession(sessionId);
OT.log(sessionId);
publisher = OT.initPublisher("publishContainer");
session.publish(publisher);
Parâmetros:
Nome Tipo Descrição
logLevel Número O nível de registro desejado pelo desenvolvedor: - OT.NONE — O registro de logs da API está desativado. - OT.ERROR — Apenas registro de erros. - OT.WARN — Registro de avisos e erros. - OT.INFO — Registro de outras informações úteis, além de avisos e erros. - OT.LOG — Registro de OT.log() mensagens, além das mensagens de informação, aviso e erro da Video API da Vonage. - OT.DEBUG — Registro detalhado de todas as ações da API, bem como OT.log() mensagens.

Veja: : - OT.log()

(estático) setProxyUrl()

Define a URL do servidor proxy IP. Com o recurso de proxy IP, o cliente encaminha todo o tráfego da Internet (exceto transmissões de mídia) por meio do seu servidor proxy.

É necessário chamar esse método antes de chamar qualquer outro método da Video API do Vonage. Isso garante que o servidor proxy seja utilizado para o tráfego da Video API do Vonage. Caso contrário, a chamada falhará, e o OT o objeto despacha um exception evento. O OT O objeto também dispacha um exception mesmo que você chame esse método depois de já tê-lo chamado anteriormente.

Esse recurso está disponível como um complemento. Para obter mais informações, consulte o Guia para desenvolvedores de proxies IP.

(estático) unblockAudio()

Faz com que o áudio dos assinantes seja reproduzido em navegadores nos quais o áudio está bloqueado. É necessário chamar esse método em resposta a um elemento HTML que dispache um click evento.

Você só precisa chamar esse método se desativar a exibição do ícone padrão de reprodução de áudio do Assinante (definindo o style.audioBlockedDisplayMode propriedade do options parâmetro do Session.subscribe() (método). Você pode chamar esse método quando o usuário clicar em um elemento HTML exibido na página.

O assinante envia um audioBlocked evento caso o áudio esteja bloqueado. Em resposta a esse evento, é possível exibir um elemento da interface do usuário para notificar o usuário final a responder ao áudio do assinante de reprodução. Chame o OT.unblockAudio() método acionado quando o usuário clica em um elemento DOM.

Observação: O áudio do assinante também é desbloqueado automaticamente se o cliente local obtiver acesso à câmera ou ao microfone (por exemplo, em resposta a uma chamada bem-sucedida para OT.initPublisher()).

Veja: : - Subscriber.isAudioBlocked() - O audioBlocked e audioUnblocked Eventos para assinantes

Devoluções:

Promessa A promessa é resolvida se a reprodução de áudio for bem-sucedida em todos os assinantes bloqueados. A promessa é rejeitada se a reprodução falhar. Veja Erro para mais detalhes.

(estática) upgradeSystemRequirements()

Exibe informações sobre os requisitos de sistema para a Video API da Vonage para WebRTC. Essas informações são exibidas em um elemento iframe que ocupa toda a janela do navegador.

Observação: essa informação é exibida automaticamente quando você acessa o OT.initSession() ou o OT.initPublisher() método caso o cliente não seja compatível com a Video API da Vonage para WebRTC.

Observação: Essa função será descontinuada no futuro.

Veja: : - OT.checkSystemRequirements()

Eventos

exceção

Enviado pela classe OT quando o aplicativo encontra uma exceção. Observe que você deve configurar um manipulador de eventos para o exception evento chamando o OT.on() método.

Veja: : - ExceptionEvent