O objeto Publisher fornece o mecanismo por meio do qual se realiza o controle do
fluxo publicado. Ao chamar o OT.initPublisher() método
cria um objeto Publisher.
O código a seguir instancia uma sessão e publica um fluxo de áudio e vídeo ao se conectar à sessão:
var apiKey = ''; // Replace with your API key. See https://tokbox.com/account
var sessionID = ''; // Replace with your own session ID.
// See https://tokbox.com/developer/guides/create-session/.
var token = ''; // Replace with a generated token that has been assigned the moderator role.
// See https://tokbox.com/developer/guides/create-token/.
var session = OT.initSession(apiKey, sessionID);
session.connect(token, function(error) {
if (error) {
console.log(error.message);
} else {
// This example assumes that a DOM element with the ID 'publisherElement' exists
var publisherProperties = {width: 400, height:300, name:"Bob's stream"};
publisher = OT.initPublisher('publisherElement', publisherProperties);
session.publish(publisher);
}
});
Este exemplo cria um objeto Publisher e adiciona seu vídeo a um elemento DOM
com o ID publisherElement chamando o OT.initPublisher()
método. Em seguida, ele publica um fluxo na sessão chamando
o publish() método do objeto Session.
Propriedades
| Nome | Tipo | Descrição |
|---|---|---|
accessAllowed |
Booleano | Se o usuário concedeu acesso à câmera e ao microfone. O objeto Publisher dispara um accessAllowed evento quando o usuário concede acesso. O objeto Publisher dispara um accessDenied evento que ocorre quando o usuário nega o acesso. |
element |
Elemento | O elemento DOM HTML que contém o Publisher. (Observação: quando você define o insertDefaultUI opção de false na chamada para OT.initPublisher, o element a propriedade não está definida.) |
id |
String | O ID DOM do Editor. |
stream |
Transmissão | O Transmissão objeto correspondente ao fluxo do Publisher. |
session |
Sessão | O Sessão à qual a editora pertence. |
Veja: : - OT.initPublisher - Session.publish()
Métodos
| Nome | Descrição | |
|---|---|---|
addEventListener(type, listener, context) |
Obsoleto. | |
applyAudioFilter(audioFilter) → {Promise} |
Aplica um filtro de áudio ao editor. | |
applyVideoFilter(videoFilter) → {Promise} |
Aplica um filtro de vídeo para o editor. | |
clearAudioFilter() → {Promise} |
Remove o filtro de áudio aplicado ao editor. | |
clearVideoFilter() → {Promise} |
Remove o filtro de vídeo aplicado ao editor. | |
cycleVideo() → {Promise} |
Alterna a fonte de entrada de vídeo utilizada pelo apresentador para a próxima na lista de dispositivos disponíveis. | |
destroy() → {Publisher} |
Exclui o objeto Publisher e o remove do DOM HTML. | |
getAudioFilter() → {Object} |
Retorna o filtro de áudio utilizado pelo editor (ou null, caso não haja filtro de áudio). | |
getAudioSource() → {MediaStreamTrack} |
Retorna o objeto `MediaStreamTrack` usado como fonte de entrada de áudio para o editor. | |
getImgData() → {String} |
Retorna a string codificada em base 64 dos dados PNG que representam o vídeo do Publisher. | |
getMaxVideoBitrate() → {Integer} |
Retorna a taxa de bits máxima personalizada definida para o Publisher. | |
getRtcStatsReport() → {Promise} |
Retorna uma promessa que, em caso de sucesso, é resolvida com um array de objetos que incluem as propriedades RTCStatsReport do stream publicado. | |
getStats(completionHandler) → {Promise.<PublisherStatsArr>} |
Retorna os detalhes sobre a qualidade do stream do editor, incluindo o seguinte: - O número total de pacotes de áudio e vídeo perdidos - O número total de pacotes de áudio e vídeo enviados - O número total de bytes de áudio e vídeo enviados - A taxa de quadros de vídeo média atual Você pode usar essas estatísticas para avaliar a qualidade do stream de áudio e vídeo do editor. | |
getStyle() → {Object} |
Retorna um objeto que possui as propriedades que definem os controles atuais da interface do usuário do Publisher. | |
| `getTargetScalabilityMode() → {String | undefined}` | Retorna o modo de escalabilidade de destino que foi definido explicitamente por meio de Editora. |
getVideoBitratePreset() → {String} |
Retorna a predefinição de taxa de bits para o Publisher. | |
getVideoContentHint() → {String} |
Retorna a sugestão de conteúdo para a trilha de vídeo. | |
getVideoFilter() → {Object} |
Retorna o filtro de vídeo aplicado pelo editor. | |
getVideoSource() → {VideoSource} |
Retorna um objeto que contém propriedades que definem a fonte de vídeo atual do editor. | |
off(type, handler, context) → {Object} |
Remove um ou mais manipuladores de eventos. | |
on(type, handler, context) → {EventDispatcher} |
Adiciona uma função de manipulador de eventos para um ou mais eventos. | |
once(type, handler, context) → {Object} |
Adiciona uma função de manipulador de eventos para um ou mais eventos. | |
publishAudio(value) → {Publisher} |
Começa a publicar o áudio (caso ainda não esteja sendo publicado) quando o value é true; interrompe a publicação do áudio (caso esteja sendo publicado no momento) quando o value é false. |
|
publishCaptions(value) → {Promise.<void>} |
Começa a publicar legendas (caso ainda não estejam sendo publicadas) quando o value é true; interrompe a publicação das legendas (caso estejam sendo publicadas no momento) quando o value é false. |
|
publishVideo(value, callback) → {Publisher} |
Ativa ou desativa o vídeo para o editor. | |
removeEventListener(type, listener, context) |
Obsoleto. | |
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise} |
Define um MediaProcessorConnector para a trilha de áudio do editor. | |
setAudioSource(audioSource) → {Promise} |
Alterna a fonte de entrada de áudio utilizada pelo editor. | |
setMaxVideoBitrate(bitrateBps) |
Define uma taxa de bits máxima personalizada para o vídeo do editor. | |
setPreferredFrameRate(frameRate) → {Promise} |
Define a taxa de quadros de vídeo preferencial. | |
setPreferredResolution(preferredResolution) → {Promise} |
Define a resolução de vídeo preferencial. | |
setStyle(style, value) → {Publisher} |
Define propriedades que determinam a aparência de alguns controles da interface do usuário do Publisher. | |
setTargetScalabilityMode(scalabilityMode) |
Define o modo de escalabilidade de destino (SVC – Scalable Video Coding) para este editor. | |
setVideoBitratePreset(preset) |
Define a taxa de bits máxima de vídeo para o editor como uma das seguintes predefinições: 'default', 'bw_saver' ou 'extra_bw_saver'. | |
setVideoContentHint(videoContentHint) → {Promise.<void>} |
Define a sugestão de conteúdo para a trilha de vídeo do stream do editor. | |
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise} |
Define um MediaProcessorConnector para a trilha de vídeo do editor. | |
setVideoSource(videoSourceId) → {Promise} |
Este método define a fonte de vídeo para um editor que está usando uma câmera. | |
videoHeight() → {Number} |
Retorna a altura, em pixels, do vídeo local do editor, lida do arquivo local <video> elemento. |
|
videoWidth() → {Number} |
Retorna a largura, em pixels, do vídeo local do editor, lida do arquivo local <video> elemento. |
addEventListener(tipo, ouvinte, contexto)
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 disparar o evento. |
context |
Objeto | (Opcional) Define o valor de this na função do manipulador de eventos. |
Obsoleto — uso on() ou uma vez() em vez disso.
Este método registra um método como um ouvinte de evento para um evento específico.
Se um manipulador não estiver registrado para um evento, o evento é ignorado localmente. Se a função de escuta de eventos não existir, o evento é ignorado localmente.
Gera uma exceção se o listener O nome é inválido.
Veja: : - on() - uma vez() - Eventos
applyAudioFilter(audioFilter) → {Promise}
Aplica um filtro de áudio ao editor. Na versão atual, só é possível aplicar um filtro avançado de supressão de ruído. Um editor pode ter apenas um (ou nenhum) filtro aplicado por vez. Ao definir um novo filtro, qualquer filtro definido anteriormente é removido.
Esse método é incompatível com o
Publisher.setAudioMediaProcessorConnector()
método. Ao chamar esse método após Publisher.setAudioMediaProccessorConnector(connector)
retorna uma promessa que é rejeitada com um erro, com o name propriedade do erro
definida como 'OT_NOT_SUPPORTED'. Você pode remover o conector chamando
Publisher.setAudioMediaProccessorConnector(null).
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 o OT.hasMediaProcessorSupport('áudio') método.
Importante: Os filtros de áudio exigem suporte adequado do processador. Mesmo em navegadores compatíveis, os transformadores podem não funcionar de forma estável quando processos em segundo plano limitam os recursos de processamento disponíveis. Consulte Requisitos do cliente.
A chamada a este método resulta em um erro (a Promise retornada pelo método é rejeitada) nas seguintes condições:
- O navegador não suporta esse método.
- Um filtro personalizado já está sendo utilizado por meio do
Publisher.setAudioMediaProcessorConnector()método. - Ocorreu um erro ao aplicar o filtro de transformação.
Você também pode definir o filtro de áudio inicial configurando um audioFilter opção
ao chamar OT.initPublisher().
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
audioFilter |
Objeto | Um objeto que define o filtro de áudio a ser aplicado. São suportados os seguintes filtros: - Filtro avançado de supressão de ruído — Defina o type propriedade do objeto para "advancedNoiseSuppression". |
Veja: : - OT.hasMediaProcessorSupport('áudio') - Publisher.getAudioFilter() - Publisher.clearAudioFilter()
Devoluções:
Uma promessa que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada e nenhum novo filtro de vídeo é definido.
applyVideoFilter(videoFilter) → {Promise}
Aplica um filtro de vídeo ao editor. É possível aplicar um filtro de desfoque de fundo. Um editor pode ter apenas um (ou nenhum) filtro aplicado por vez. Ao definir um novo filtro, o filtro definido anteriormente é removido.
Esse método é incompatível com o
Publisher.setVideoMediaProcessorConnector()
método. Ao chamar esse método após Publisher.setVideoMediaProcessorConnector(connector)
retorna uma promessa que é rejeitada com um erro, com o name propriedade do erro
definida como 'OT_NOT_SUPPORTED'. Você pode remover o conector chamando
Publisher.setVideoMediaProcessorConnector(null).
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 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.
Importante: Os filtros de vídeo exigem suporte adequado do processador. Mesmo em navegadores compatíveis, os transformadores podem não funcionar de maneira estável quando processos em segundo plano limitam os recursos de processamento disponíveis. Consulte Requisitos do cliente.
A chamada a este método resulta em um erro (a Promise retornada pelo método é rejeitada) nas seguintes condições:
- O navegador não suporta esse método.
- O editor não está usando uma fonte de vídeo compatível. (O
videoSourceopção do OT.initPublisher() O método foi definido comonull,false, ou"screen"). - Um filtro personalizado já está sendo utilizado por meio do
Publisher.setVideoMediaProcessorConnector()método. - Não há dispositivos de entrada de vídeo (câmeras) disponíveis.
- Ocorreu um erro ao obter o vídeo do dispositivo de entrada de vídeo.
- Ocorreu um erro ao aplicar o filtro de transformação.
Você também pode definir o filtro de vídeo inicial configurando um videoFilter opção
ao chamar OT.initPublisher().
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
videoFilter |
Objeto | Um objeto que define o filtro de vídeo a ser aplicado. 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 esse valor 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. |
Veja: : - OT.hasMediaProcessorSupport('vídeo') - Publisher.getVideoFilter() - Publisher.clearVideoFilter()
Devoluções:
Uma promessa que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada e nenhum novo filtro de vídeo é definido.
clearAudioFilter() → {Promise}
Remove o filtro de áudio aplicado ao editor.
Isso resultará em um erro (a Promise retornada pelo método será rejeitada) se o filtro de áudio não puder ser interrompido.
Veja: : - OT.hasMediaProcessorSupport('áudio') - Publisher.applyAudioFilter() - Publisher.getAudioFilter()
Devoluções:
Uma promessa que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada.
clearVideoFilter() → {Promise}
Remove o filtro de vídeo aplicado ao editor.
Isso resultará em um erro (a Promise retornada pelo método será rejeitada) se o filtro de vídeo não puder ser interrompido.
Veja: : - OT.hasMediaProcessorSupport('vídeo') - Publisher.applyVideoFilter() - Publisher.getVideoFilter()
Devoluções:
Uma promessa que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada.
cycleVideo() → {Promise}
Altera a fonte de entrada de vídeo utilizada pelo apresentador para a próxima da lista de dispositivos disponíveis.
Isso resultará em um erro (a Promise retornada pelo método será rejeitada) nas seguintes condições:
- O usuário negou acesso ao dispositivo de entrada de vídeo.
- O editor não está utilizando uma fonte de vídeo de câmera. (O
videoSourceopção do OT.initPublisher() O método foi definido comonull,false, um objeto MediaStreamTrack ou"screen"). - Não há dispositivos de entrada de vídeo (câmeras) disponíveis.
- Ocorreu um erro ao obter o vídeo do dispositivo de entrada de vídeo.
Veja: : - Publisher.setVideoSource()
Devoluções:
Uma promessa que é resolvida quando a operação é concluída
com sucesso. A promessa é resolvida com um objeto que possui um
deviceId propriedade definida como o ID do dispositivo da câmera utilizada:
publisher.cycleVideo().then(console.log);
// Output: {deviceId: "967a86e52..."}
Se ocorrer um erro, a promessa é rejeitada.
destroy() → {Editora}
Exclui o objeto Publisher e o remove do DOM HTML.
O objeto Publisher dispacha um destroyed evento que ocorre quando o elemento
DOM é removido.
Devoluções:
A Editora.
getAudioFilter() → {Object}
Retorna o filtro de áudio utilizado pelo editor (ou null, caso não haja filtro de áudio).
Veja: : - OT.hasMediaProcessorSupport('áudio') - Publisher.applyAudioFilter() - Publisher.clearAudioFilter()
Devoluções:
O filtro de áudio utilizado pela editora.
Verifique o type propriedade do objeto para verificar o tipo de filtro de áudio.
Atualmente, apenas o filtro avançado de supressão de ruído é compatível, e o
type a propriedade está definida como "advancedNoiseSuppression".
getAudioSource() → {MediaStreamTrack}
Retorna o objeto `MediaStreamTrack` usado como fonte de entrada de áudio para o editor. Se o editor não tiver uma fonte de áudio, este método retorna `null`.
Veja: : - Publisher.setAudioSource()
Devoluções:
A fonte de áudio da editora (ou nula, caso não haja nenhuma).
getImgData() → {String}
Retorna a string codificada em base 64 dos dados PNG que representam o vídeo do Publisher.
Você pode usar a string como valor para um esquema de URL de dados passado ao parâmetro src de um arquivo de imagem, conforme mostrado a seguir:
var imgData = publisher.getImgData();
var img = document.createElement("img");
img.setAttribute("src", "data:image/png;base64," + imgData);
var imgWin = window.open("about:blank", "Screenshot");
imgWin.document.write("<body></body>");
imgWin.document.body.appendChild(img);
Devoluções:
A string codificada em base-64. Retorna uma string vazia se não houver vídeo.
getMaxVideoBitrate() → {Integer}
Retorna a taxa de bits máxima personalizada definida para o Publisher.
Veja: : - Publisher.setMaxVideoBitrate() - Taxa de bits máxima do editor
Devoluções:
Um dos seguintes valores: 0 ou qualquer valor inteiro compreendido entre 5.000 e 10.000.000.
getRtcStatsReport() → {Promise}
Retorna uma promessa que, em caso de sucesso, é resolvida com um array de objetos que incluem as propriedades RTCStatsReport do stream publicado. (Consulte RTCStatsReport.)
Para um editor em uma sessão roteada (aquela que utiliza o
Video API da Vonage
Roteador de Mídia), essa matriz inclui um objeto, definindo as estatísticas do único
fluxo de mídia de áudio enviado ao Media Router da Video API da Vonage. Em uma sessão retransmitida, a
matriz inclui um objeto para cada assinante do fluxo publicado. Cada objeto na
matriz contém um rtcStatsReport propriedade que é um objeto RTCStatsReport.
Além disso, para um editor em uma sessão retransmitida, cada objeto na matriz contém as duas propriedades a seguir:
connectionId(String) — O ID exclusivo da conexão do cliente, que corresponde aoidpropriedade doconnectionpropriedade do conexãoCriada caso em que o objeto Session tenha sido despachado para o cliente remoto.subscriberId(String) — O ID exclusivo do assinante, que corresponde aoidpropriedade do objeto Subscriber no aplicativo do cliente assinante.
Essas duas propriedades não estão definidas para um editor em uma sessão roteada.
A Promessa será rejeitada nas seguintes condições:
- O navegador não suporta esse método (por exemplo, no Chrome versão 57 e anteriores, que não suportam o RTCPeerConnection.getStats() (padrão).
- O PeerConnection pois o Publisher não está conectado.
Veja: : - Subscriber.getRtcStatsReport()
Devoluções:
Uma promessa que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada.
getStats(completionHandler) → {Promise.<PublisherStatsArr>}
Retorna os detalhes sobre a qualidade do stream do editor, incluindo o seguinte:
- O número total de pacotes de áudio e vídeo perdidos
- O número total de pacotes de áudio e vídeo enviados
- O número total de bytes de áudio e vídeo enviados
- A taxa média atual de quadros por segundo do vídeo
Você pode usar essas estatísticas para avaliar a qualidade do fluxo de áudio e vídeo do provedor.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
completionHandler |
função | (Opcional) Uma função que recebe os seguintes parâmetros: - error (Erro) — Após a conclusão bem-sucedida do método, este valor é indefinido. Ocorre um erro se o emissor não estiver conectado a uma sessão ou se não estiver transmitindo áudio ou vídeo. - statsArray (Matriz) — Uma matriz de objetos que define as estatísticas atuais de áudio e vídeo do editor. Para um editor em uma sessão roteada (aquela que utiliza o Video API da Vonage Roteador de Mídia), esse array inclui um objeto, definindo as estatísticas do único fluxo de mídia de áudio enviado ao Media Router da Video API da Vonage. Em uma sessão retransmitida, o array inclui um objeto para cada assinante do fluxo publicado. Cada objeto no array contém um stats propriedade que inclui as seguintes propriedades: - audio.bytesSent (Número) — O número total de bytes de áudio enviados ao assinante (ou ao Roteador de Mídia da Video API da Vonage) - audio.packetsLost (Número) — O número total de pacotes de áudio que não chegaram ao assinante (ou ao Media Router da Video API da Vonage) - audio.packetsSent (Número) — O número total de pacotes de áudio enviados ao assinante (ou ao Roteador de Mídia da Video API da Vonage) - timestamp (Número) — O carimbo de data/hora, em milissegundos desde a época Unix, correspondente ao momento em que essas estatísticas foram coletadas - video.bytesSent (Número) — O total de bytes de vídeo enviados ao assinante (ou ao Media Router da Video API da Vonage) - video.packetsLost (Número) — O número total de pacotes de vídeo que não chegaram ao assinante (ou ao Media Router da Video API da Vonage) - video.packetsSent (Número) — O número total de pacotes de vídeo enviados ao assinante - video.frameRate (Número) — A taxa média atual de quadros do vídeo. Essa propriedade está obsoleta e será removida no futuro. Em vez disso, use a encodedFrameRate propriedade nas diferentes camadas. - video.layers (Matriz) — Uma lista das camadas de codificação de vídeo ativas, ordenadas da resolução mais alta para a mais baixa. Cada objeto de camada inclui: - width (Número) — A largura da resolução do vídeo para esta camada, em pixels - height (Número) — A altura da resolução do vídeo para esta camada, em pixels - encodedFrameRate (Número) — A taxa de quadros dessa camada em quadros por segundo - bitrate (Número) — A taxa de bits utilizada por esta camada em bits por segundo - totalBitrate (Número) — A taxa de bits total utilizada por esta camada, em bits por segundo. Isso inclui cabeçalhos RTP, preenchimento e carga útil - scalabilityMode (Número) — Uma sequência de caracteres que descreve a configuração de escalabilidade (por exemplo, "L1T3" (para uma camada espacial e três camadas temporais). Isso reflete se é utilizada a transmissão simultânea ou o SVC - codec (Número) — O codec utilizado por esta camada - qualityLimitationReason (Número) — (Opcional) Uma sequência de caracteres que indica por que a qualidade do vídeo do editor pode ter sido prejudicada. Valores possíveis: - "bandwidth" — Deterioração da qualidade devido à largura de banda insuficiente da rede - "cpu" — Deterioração da qualidade causada por limitações da CPU no dispositivo cliente - "other" — Outros motivos não especificados - transportStats (Objeto) — Esta propriedade está obsoleta e será removida no futuro. Em vez disso, use mediaLink.transport. - mediaLink.transport.connectionEstimatedBandwidth (Número) — A largura de banda disponível estimada para a conexão, em bits por segundo (bps) - mediaLink.transport.networkCondition (String) — Condição atual da rede. Os valores possíveis são: unknown, critical, warning, fair, good e excellent. - mediaLink.transport.networkConditionReason (String) — Principal motivo que afeta as condições da rede. Os valores possíveis são: none, unknown, bandwidth e packetLoss. Além disso, para um editor em uma sessão retransmitida, cada objeto na matriz contém as duas propriedades a seguir: - connectionId (String) — O ID exclusivo da conexão do cliente, que corresponde ao id propriedade do connection propriedade do conexãoCriada evento que o objeto Session enviou para o cliente remoto. - subscriberId (String) — O ID exclusivo do assinante, que corresponde ao id propriedade do objeto Subscriber no aplicativo do cliente assinante. Essas duas propriedades são indefinidas para um editor em uma sessão roteada. |
Veja: : - Subscriber.getStats() - Publisher.getRtcStatsReport()
Devoluções:
getStyle() → {Object}
Retorna um objeto que possui as propriedades que definem os controles atuais da interface do usuário do
Publisher. É possível modificar as propriedades desse objeto e passá-lo para o
setStyle() método do objeto Publisher. (Consulte a documentação de
setStyle() (para ver os estilos que definem esse objeto.)
Veja: : - setStyle()
Devoluções:
O objeto que define os estilos do Publisher.
getTargetScalabilityMode() → {String|undefined}
Retorna o modo de escalabilidade de destino que foi definido explicitamente por meio de
Publisher.setTargetScalabilityMode().
Retorna o último valor passado ao setter, ou undefined se o setter
nunca tiver sido chamado.
Isso reflete a intenção do usuário, e não o modo efetivamente aplicado (que pode diferir devido ao
recurso de fallback dependente do codec).
Este é um recurso em fase beta.
Veja: : - Publisher.setTargetScalabilityMode()
Devoluções:
O modo de escalabilidade alvo definido pelo chamador,
ou undefined se não for definido explicitamente.
getVideoBitratePreset() → {String}
Retorna a predefinição de taxa de bits para o Publisher.
Veja: : - Publisher.setVideoBitratePreset() - Taxa de bits máxima do editor
Devoluções:
Um dos seguintes valores: 'custom', 'extra_bw_saver', 'bw_saver' ou 'default'
getVideoContentHint() → {String}
Retorna a sugestão de conteúdo para a trilha de vídeo.
Veja: : - Publisher.setVideoContentHint()
Devoluções:
Um dos seguintes valores: "",
"motion", "detail, ou "text".
getVideoFilter() → {Object}
Retorna o filtro de vídeo aplicado pelo editor.
Veja: : - OT.hasMediaProcessorSupport('vídeo') - Publisher.applyVideoFilter() - Publisher.clearVideoFilter()
Devoluções:
O filtro de vídeo que está sendo aplicado à fonte de entrada de vídeo utilizada pelo editor.
Verifique o type propriedade do objeto para verificar o tipo de filtro de vídeo. Os seguintes
filtros são suportados:
- Filtro de desfoque de fundo — O
typea propriedade do objeto está definida como"backgroundBlur". Um objeto de filtro de desfoque de fundo inclui umblurStrengthpropriedade, que define o raio de desfoque, definida como"low"ou"high". - Filtro de substituição de plano de fundo — O
typeA propriedade `type` do objeto está definida como"backgroundReplacement". Um objeto de filtro de substituição de plano de fundo inclui umbackgroundImgUrlpropriedade que define a URL da imagem de fundo a ser usada.
getVideoSource() → {VideoSource}
Retorna um objeto que contém propriedades que definem a fonte de vídeo atual do editor.
Veja: : - Publisher.setVideoSource() - OT.initPublisher()
Devoluções:
O objeto de retorno possui as seguintes propriedades:
deviceId(String | null) — O ID do dispositivo.type(String | null) — Esse parâmetro é definido como 'camera' (para um vídeo gravado pela câmera), 'screen' (para um vídeo de compartilhamento de tela) ou 'custom' (para um vídeo com fonte MediaStreamTrack).track(MediaStreamTrack | null) — O MediaStreamTrack do vídeo.
Quaisquer propriedades não aplicáveis serão definidas como nulas.
off(tipo, manipulador, contexto) → {Object}
Remove um ou mais manipuladores de eventos.
Se você passar o nome de um evento e um método manipulador, o manipulador será removido para esse evento:
obj.off("eventName", eventHandler);
Se você passar vários nomes de eventos e um método manipulador, o manipulador será removido para esses eventos:
obj.off("eventName1 eventName2", eventHandler);
Se você passar um nome de evento (ou nomes) e não método de manipulador, todos os manipuladores são removidos para esses eventos:
obj.off("event1Name event2Name");
Se você não passar nenhum argumento, todos os manipuladores de eventos são removidos para todos os eventos desencadeados pelo objeto:
obj.off();
O método também suporta uma sintaxe alternativa, na qual o primeiro parâmetro é um objeto que é um mapa 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:
obj.off(
{
eventName1: event1Handler,
eventName2: event2Handler
});
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 “accessAllowed accessDenied accessDialogClosed”. 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 manipuladora de eventos a ser removida. A manipuladora deve ser o mesmo objeto de função que foi passado para on(). Tenha cuidado com auxiliares como bind() que retornam uma nova função quando chamadas. 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 manipuladores que utilizam o contexto especificado. (O contexto deve corresponder ao contexto passado para on().) |
Veja: : - on() - uma vez() - Eventos
Devoluções:
O objeto que disparou o evento.
on(tipo, manipulador, contexto) → {EventDispatcher}
Adiciona uma função de manipulador de eventos para um ou mais eventos.
O código a seguir adiciona um manipulador de eventos para um evento:
obj.on("eventName", function (event) {
// This is the event handler.
});
Se você passar vários nomes de eventos e um método manipulador, o manipulador será registrado para cada um desses eventos:
obj.on("eventName1 eventName2",
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:
obj.on("eventName",
function (event) {
// This is the event handler.
},
obj);
O método também suporta uma sintaxe alternativa, na qual o primeiro parâmetro é um objeto que representa um mapa 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:
obj.on(
{
eventName1: function (event) {
// This is the handler for eventName1.
},
eventName2: function (event) {
// This is the handler for eventName2.
}
},
obj);
Se você não adicionar um manipulador para um evento, o evento será ignorado localmente.
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á cada um desses eventos. |
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
Devoluções:
O objeto EventDispatcher.
once(tipo, manipulador, contexto) → {Object}
Adiciona uma função de manipulador de eventos para um ou mais eventos. Assim que o manipulador for chamado,
o método de manipulador especificado é removido como manipulador desse evento. (Quando você usa
o on() método para adicionar um manipulador de eventos; o manipulador é não
é removido quando é chamado.) O once() O método é equivalente a
chamar o on()
método e chamada off() na primeira vez que o manipulador for chamado.
O código a seguir adiciona um manipulador de evento único para um evento:
obj.once("eventName", function (event) {
// This is the event handler.
});
Se você passar vários nomes de eventos e um método de tratamento, o tratamento será registrado para cada um desses eventos:
obj.once("eventName1 eventName2"
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:
obj.once("eventName",
function (event) {
// This is the event handler.
},
obj);
O método também suporta uma sintaxe alternativa, na qual o primeiro parâmetro é um objeto que é um mapa 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:
obj.once(
{
eventName1: function (event) {
// This is the event handler for eventName1.
},
eventName2: function (event) {
// This is the event handler for eventName1.
}
},
obj);
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() - off() - Eventos
Devoluções:
O objeto que disparou o evento.
publishAudio(valor) → {Editora}
Inicia a publicação do áudio (caso ainda não esteja sendo publicado)
quando o value é true; interrompe a publicação do áudio
(caso esteja sendo publicado no momento) quando o value é false.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
value |
Booleano | Se deve começar a publicar áudio (true) ou não (false). |
Veja: : - OT.initPublisher() - Stream.hasAudio - StreamPropertyChangedEvent
Devoluções:
publishCaptions(valor) → {Promise.<void>}
Começa a publicar legendas (caso ainda não estejam sendo publicadas)
quando o value é true; interrompe a publicação de legendas
(caso esteja sendo publicada no momento) quando o value é false.
Observação: Nenhuma legenda será publicada se o editor não tiver uma fonte de áudio.
Para obter mais informações, consulte o Legendas em tempo real guia do desenvolvedor.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
value |
Booleano | Se deve começar a publicar legendas (true) ou não (false). |
Veja: : - OT.initPublisher() - subscribeToCaptions() - isSubscribedToCaptions() - Stream.hasCaptions - StreamPropertyChangedEvent
Devoluções:
publishVideo(valor, callback) → {Editora}
Ativa ou desativa o vídeo para o editor. Isso faz com que o vídeo seja publicado
(se ele não estiver sendo publicado no momento, o cliente estiver conectado
e o editor estiver publicando) quando o value é true;
ele interrompe a publicação do vídeo (caso esteja sendo publicado no momento) quando o value
é false.
Observação: O comportamento de publishVideo varia dependendo se
o editor está conectado no momento e publicando:
- Chamando
publishVideo(true)quando o editor não está conectado a uma sessão, isso faz com que o editor capture e reproduza o vídeo localmente, mas não transmita o vídeo. - Chamando
publishVideo(false)quando o editor não está conectado a uma sessão, isso faz com que o editor pare de capturar vídeo localmente. Nenhum vídeo é transmitido. - Chamando
publishVideo(true)Quando o editor está conectado a uma sessão, mas não está transmitindo no momento, ele captura e reproduz o vídeo localmente, mas não transmite o vídeo. - Chamando
publishVideo(false)Quando o emissor está conectado a uma sessão, mas não está transmitindo no momento, isso faz com que ele pare de capturar vídeo localmente. Nenhum vídeo é transmitido. - Chamando
publishVideo(true)quando o editor está conectado a uma sessão e, ao mesmo tempo, está transmitindo, isso faz com que ele capture e reproduza o vídeo localmente e transmita o vídeo. - Chamando
publishVideo(false)Quando o editor está conectado a uma sessão e, ao mesmo tempo, está transmitindo, isso faz com que ele pare de capturar vídeo e transmita quadros de vídeo vazios.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
value |
Booleano | Se deve começar a publicar vídeos (true) ou não (false). |
callback |
função | (Opcional) Uma função que recebe um Error parâmetro. Após a conclusão bem-sucedida do método, este error O parâmetro não está definido. Ocorre um erro se o editor não tiver dispositivos para fornecer o fluxo de mídia ou se a solicitação de mídia do usuário não for compatível. |
Veja: : - OT.initPublisher() - Stream.hasVideo - StreamPropertyChangedEvent
Devoluções:
removeEventListener(tipo, ouvinte, contexto)
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. |
context |
Objeto | (Opcional) Se você especificar um context, o manipulador de eventos é removido para todos os eventos especificados e para todos os ouvintes de eventos que utilizam o contexto especificado. (O contexto deve corresponder ao contexto passado para addEventListener().) |
Obsoleto — uso 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.
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise}
Define um MediaProcessorConnector para a trilha de áudio do editor. Um editor pode ter apenas uma trilha de áudio MediaProcessorConnector aplicado de uma só vez. Ao definir um novo conector, o conector de áudio definido anteriormente é removido.
Observação: Os MediaProcessors são compatíveis apenas com as versões mais recentes do Chrome, Electron, Opera, Edge, Samsung Internet e Android WebView. 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 o OT.hasMediaProcessorSupport('áudio') método.
Importante: Os processadores de mídia exigem suporte adequado do processador. Mesmo em navegadores compatíveis, os transformadores podem não funcionar de maneira estável quando processos em segundo plano limitam os recursos de processamento disponíveis. Consulte Requisitos do cliente.
A chamada a este método resulta em um erro (a Promise retornada pelo método é rejeitada) nas seguintes condições:
- Não há dispositivos de entrada de áudio (microfones) disponíveis.
- Ocorreu um erro ao obter o áudio do dispositivo de entrada de áudio.
- Ocorreu um erro ao obter a faixa processada do MediaProcessorConnector.
Você pode limpar o conector atual chamando este método com null.
Para obter mais informações, consulte o Utilizando a biblioteca do Vonage Media Processor guia do desenvolvedor.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
mediaProcessorConnector |
MediaProcessorConnector | Uma instância de MediaProcessorConnector. Consulte o Documentação da biblioteca do Vonage Media Processor. |
Veja: : - OT.hasMediaProcessorSupport('áudio')
Devoluções:
Uma promessa que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada e nenhum conector é definido.
setAudioSource(audioSource) → {Promise}
Alterna a fonte de entrada de áudio utilizada pelo editor. Você pode definir a
audioSource para um ID de dispositivo (string) ou um objeto MediaStreamTrack de áudio.
Isso resultará em um erro (a Promise retornada pelo método será rejeitada) nas seguintes condições:
- O navegador não suporta esse método. Esse método não é suportado no Internet Explorer nem nas versões do Edge que não são baseadas no Chromium (anteriores à versão 79).
- O editor não foi iniciado com uma fonte de áudio. (O
audioSourceopção do OT.initPublisher() O método foi definido comonulloufalse). - O usuário negou o acesso ao dispositivo de entrada de áudio.
- Ocorreu um erro ao obter o áudio do dispositivo de entrada de áudio ou do objeto MediaStreamTrack .
- O
audioSourceO valor não é uma string nem um objeto MediaStreamTrack. - O
audioSource"string" não é um dispositivo de entrada de áudio válido disponível para o navegador.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
audioSource |
Objeto | O ID do dispositivo (string) de um dispositivo de entrada de áudio ou um objeto MediaStreamTrack de áudio. |
Veja: : - Publisher.getAudioSource()
Devoluções:
Uma promessa que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada.
setMaxVideoBitrate(bitrateBps)
Define uma taxa de bits máxima personalizada para o vídeo do editor. Defina esse valor entre 5.000 e 10.000.000. Ao definir o valor como 0, qualquer taxa de bits personalizada definida anteriormente é removida, revertendo para o comportamento padrão.
A configuração da taxa de bits máxima é compatível com as versões mais recentes de todos os navegadores compatíveis.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
bitrateBps |
Inteiro | O valor da taxa de bits do vídeo — entre 5.000 e 10.000.000. Defina como 0 para remover uma configuração personalizada de taxa de bits e voltar ao comportamento padrão. |
Veja: : - Publisher.getMaxVideoBitrate() - Publisher.setVideoBitratePreset() - Taxa de bits máxima do editor
setPreferredFrameRate(frameRate) → {Promise}
Define a taxa de quadros preferencial do vídeo. Esta função define a taxa de quadros desejada para a publicação do vídeo. A taxa de quadros deve ser um número inteiro ≥ 1. Se for bem-sucedida, aplica os novos parâmetros de taxa de quadros à trilha de vídeo.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
frameRate |
número | A taxa de quadros de vídeo preferida. |
Devoluções:
É resolvido quando as restrições de vídeo são aplicadas com sucesso. Caso contrário, gera um erro — por exemplo, se o editor não estiver publicando vídeo, a taxa de quadros for inválida ou se a aplicação das restrições falhar.
setPreferredResolution(preferredResolution) → {Promise}
Define a resolução preferencial do vídeo. Esta função define a resolução preferencial para o editor de vídeo. Ela verifica se a entrada é um objeto com propriedades de largura e altura definidas por números inteiros positivos, e confirma se a resolução não é maior do que a resolução inicial de publicação. Se for bem-sucedida, aplica as novas restrições à trilha de vídeo.
Parâmetros:
| Nome | Tipo | Descrição | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
preferredResolution |
Objeto | A resolução desejada. Propriedades | Nome | Tipo | Descrição | --- | --- | --- | width |
número | Largura preferencial do vídeo (pixels). | height |
número | Altura preferencial do vídeo (pixels). |
Devoluções:
É resolvido quando as restrições de vídeo são aplicadas com sucesso. Caso contrário, gera um erro — por exemplo, se o editor não estiver publicando vídeo, as dimensões forem inválidas ou a resolução exceder a resolução inicial.
setStyle(style, value) → {Editora}
Define propriedades que determinam a aparência de alguns controles da interface do usuário do Publisher.
É possível passar um ou dois parâmetros para esse método.
Se você passar um parâmetro, style, trata-se de um objeto que possui 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 de arquivamento, poderá exibir suas próprias notificações na interface do usuário com base noarchiveStartedearchiveStoppedeventos 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ê chamarpublishVideo(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 odataEsquema URI (em vez de http ou https) e passar dados PNG criptografados em base-64, como os obtidos a partir do Publisher.getImgData() método (por exemplo, você poderia chamarmyPublisher.setStyle("backgroundImageURI", myPublisher.getImgData())). Se a URL ou os dados da imagem forem inválidos, a propriedade será ignorada (a tentativa de definir a imagem falhará sem exibir nenhuma mensagem). O plano de fundo atual será removido se nenhuma imagem for passada e as iniciais serão exibidas, caso tenham sido definidas anteriormente.buttonDisplayMode(String) — Como exibir os controles do microfone. Os valores possíveis são:"auto"(os controles são exibidos quando a transmissão é exibida pela primeira vez e quando o usuário passa o mouse sobre a tela),"off"(os controles não são exibidos), e"on"(os controles são sempre exibidos).nameDisplayMode(String) — 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).
Por exemplo, o código a seguir passa um parâmetro para o método:
myPublisher.setStyle({nameDisplayMode: "off"});
Se você passar dois parâmetros, style e value, são
pares chave-valor que definem uma propriedade do estilo de exibição. Por exemplo, o código a seguir
passa dois valores de parâmetro para o método:
myPublisher.setStyle("nameDisplayMode", "off");
Você pode definir as configurações iniciais ao chamar a função Session.publish()
ou OT.initPublisher() método. Passe um style propriedade como parte do
properties parâmetro do método.
O objeto OT despacha um exception mesmo que você passe um estilo inválido
para o método. O code A propriedade do objeto ExceptionEvent está definida como 1011.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
style |
Objeto | Pode ser um objeto contendo propriedades que definem o estilo ou uma String que defina essa única propriedade de estilo a ser definida. |
value |
String | O valor a ser definido para o style foi passado. Passe um valor para este parâmetro somente se o valor do style O parâmetro é uma String. |
Veja: : - getStyle() - setStyle() - Session.publish() - OT.initPublisher()
Devoluções:
O objeto Publisher
setTargetScalabilityMode(scalabilityMode)
Define o modo de escalabilidade de destino (SVC – Scalable Video Coding) para este editor.
O modo de escalabilidade controla o número de camadas espaciais (resolução) e temporais (taxa de quadros) que o WebRTC codifica. O modo é aplicado ao caminho de mídia do Media Router.
Esse método pode ser chamado a qualquer momento — não é necessário que a negociação do caminho de mídia tenha sido concluída. O modo será aplicado assim que o caminho de mídia do Media Router for estabelecido.
Se um codec que não seja SVC (VP8, H.264) for negociado no caminho de mídia do Media Router, o modo aplicável mais próximo
é utilizado: as camadas espaciais são forçadas a 1, preservando a dimensão temporal
(por exemplo, L2T2 → L1T2 quando o VP8 for negociado).
Modos válidos:
L1T1,L1T2,L1T3,L2T1,L2T2,L2T3,L3T1,L3T2,L3T3
Este é um recurso em fase beta.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
scalabilityMode |
String | O identificador do modo de escalabilidade de destino (por exemplo, "L1T3", "L3T3"). |
Veja: : - Publisher.getTargetScalabilityMode()
Arremessos:
setVideoBitratePreset(preset)
Define a taxa de bits máxima de vídeo para o editor como uma das seguintes predefinições: 'default', 'bw_saver' ou 'extra_bw_saver'. Para mais detalhes, consulte o Taxa de bits máxima do editor guia do desenvolvedor.
A configuração da taxa de bits máxima é compatível com as versões mais recentes de todos os navegadores compatíveis.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
preset |
String | A predefinição a ser usada: “default”, “bw_saver” ou “extra_bw_saver”. |
Veja: : - Publisher.getVideoBitratePreset() - Publisher.setMaxVideoBitrate()
setVideoContentHint(videoContentHint) → {Promise.<void>}
Define a dica de conteúdo para a 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.
Use este método para alterar dinamicamente o conteúdo de vídeo exibido. Defina o conteúdo de vídeo inicial
a ser exibido configurando o videoContentHint propriedade das opções passadas para o
OT.initPublisher() método.
O Chrome 60+, o Safari 12.1+, o Edge 79+, o Opera 47+, as versões mais 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.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
videoContentHint |
String | Você pode definir esse valor como um dos seguintes: - "" — Não há nenhuma dica. - "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, pinturas ou desenhos a 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. |
Veja: : - Publisher.getVideoContentHint() - OT.initPublisher()
Devoluções:
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise}
Define um MediaProcessorConnector para a trilha de vídeo do editor. Um editor pode ter apenas uma trilha de vídeo MediaProcessorConnector aplicado de uma só vez. Ao definir um novo conector, o conector de vídeo definido anteriormente é removido.
Esse método é incompatível com o
Publisher.applyVideoFilter()
método. Ao chamar esse método após Publisher.applyVideoFilter(filter) retorna
uma promessa rejeitada com um erro, com o name propriedade do conjunto de erros definida como
'OT_NOT_SUPPORTED'. Você pode limpar o filtro de vídeo chamando
Publisher.clearVideoFilter().
Observação: Os MediaProcessors são compatíveis apenas com as versões mais recentes do Chrome, Firefox, Electron, Opera, Edge, Samsung Internet, WebView do Android e 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.
Importante: Os processadores de mídia exigem suporte adequado do processador. Mesmo em navegadores compatíveis, os transformadores podem não funcionar de maneira estável quando processos em segundo plano limitam os recursos de processamento disponíveis. Consulte Requisitos do cliente.
A chamada a este método resulta em um erro (a Promise retornada pelo método é rejeitada) nas seguintes condições:
- Não há dispositivos de entrada de vídeo (câmeras) disponíveis.
- Um filtro de vídeo já foi aplicado por meio do
Publisher.applyVideoFilter()método. - Ocorreu um erro ao obter o vídeo do dispositivo de entrada de vídeo.
- Ocorreu um erro ao obter a faixa processada do MediaProcessorConnector.
Você pode limpar o conector atual chamando este método com null.
Para obter mais informações, consulte o Utilizando a biblioteca do Vonage Media Processor guia do desenvolvedor.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
mediaProcessorConnector |
MediaProcessorConnector | Uma instância de MediaProcessorConnector. Consulte o Documentação da biblioteca do Vonage Media Processor. |
Veja: : - OT.hasMediaProcessorSupport('vídeo')
Devoluções:
Uma promessa que é resolvida quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada e nenhum conector é definido.
setVideoSource(videoSourceId) → {Promise}
Este método define a fonte de vídeo para um editor que está usando uma câmera. Passe o ID do dispositivo da nova fonte de vídeo.
O seguinte resultará em erros:
- Se o
videoSourceIdSe o parâmetro não for uma string ou o ID de um dispositivo de entrada de vídeo válido, a promessa será rejeitada com um erro com onamepropriedade definida como'OT_INVALID_VIDEO_SOURCE'. - Se o editor não estiver utilizando uma entrada de câmera no momento, a promessa
será rejeitada com um erro com o
namepropriedade definida como'OT_SET_VIDEO_SOURCE_FAILURE'.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
videoSourceId |
String | O ID do dispositivo de entrada de vídeo (câmera). |
Veja: : - OT.getDevices() - Publisher.getVideoSource() - Publisher.cycleVideo()
Devoluções:
Uma promessa que retorna um valor nulo quando a operação é concluída com sucesso. Se ocorrer um erro, a promessa é rejeitada.
videoHeight() → {Number}
Retorna a altura, em pixels, do vídeo local do editor, lida do
local <video> elemento. Esse valor é o mesmo que
stream.videoDimensions.height.
Devoluções:
A altura, em pixels, do vídeo local do editor.
videoWidth() → {Number}
Retorna a largura, em pixels, do vídeo local do editor, lida do
local <video> elemento. Esse valor é o mesmo que
stream.videoDimensions.width
Devoluções:
A largura, em pixels, do vídeo local do editor.
Eventos
acessoPermitido
É disparado quando o usuário clica no botão “Permitir”, concedendo ao
aplicativo acesso à câmera e ao microfone. O objeto Publisher possui um
accessAllowed propriedade que indica se o usuário
concedeu acesso à câmera e ao microfone.
Veja: : - Evento
acesso negado
É disparado quando o usuário clica no botão “Negar”, impedindo que o aplicativo tenha acesso à câmera e ao microfone.
Esse evento também é disparado se o usuário revogar as permissões após tê-las concedido anteriormente.
Observação: No macOS 10.15 ou superior (Catalina), para publicar uma transmissão de compartilhamento de tela,
o usuário deve conceder ao navegador acesso à tela nas Preferências do Sistema do macOS >
Segurança e Privacidade > Privacidade > Gravação de tela. Caso contrário,
o Publisher enviará um accessDenied evento.
Veja: : - Evento
accessDialogClosed
É enviado quando a caixa de diálogo “Permitir/Negar” é fechada. (Essa é a caixa de diálogo na qual o usuário pode conceder ao aplicativo acesso à câmera e ao microfone.)
Veja: : - Evento
accessDialogOpened
É enviado quando a caixa de diálogo “Permitir/Negar” é aberta. (Essa é a caixa de diálogo na qual o usuário pode conceder ao aplicativo acesso à câmera e ao microfone.)
Veja: : - Evento
audioInputDeviceChanged
É disparado quando o dispositivo de entrada de áudio é alterado.
Veja: : - Evento - Evento de alteração do dispositivo de entrada de áudio
audioLevelUpdated
É disparado periodicamente para indicar o nível de áudio do editor. O evento é disparado
até 60 vezes por segundo, dependendo do navegador. O audioLevel A propriedade
do evento é o nível de áudio, que varia de 0 a 1,0. Consulte Evento de atualização do nível de áudio para mais
informações.
O exemplo a seguir ajusta o valor de um elemento de medidor que exibe o volume do emissor. Observe que o nível de áudio é ajustado logaritmicamente e que é aplicada uma média móvel:
var movingAvg = null;
publisher.on('audioLevelUpdated', function(event) {
if (movingAvg === null || movingAvg <= event.audioLevel) {
movingAvg = event.audioLevel;
} else {
movingAvg = 0.7 * movingAvg + 0.3 * event.audioLevel;
}
// 1.5 scaling to map the -30 - 0 dBm range to [0,1]
var logLevel = (Math.log(movingAvg) / Math.LN10) / 1.5 + 1;
logLevel = Math.min(Math.max(logLevel, 0), 1);
document.getElementById('publisherMeter').value = logLevel;
});
Este exemplo mostra o algoritmo utilizado pelo indicador de nível de áudio padrão exibido em um Publisher apenas de áudio.
Veja: : - Evento de atualização do nível de áudio
destruído
É disparado quando o elemento Publisher é removido do DOM HTML. Quando esse evento é disparado, você pode optar por ajustar ou remover elementos do DOM HTML relacionados ao publisher.
mediaStopped
O usuário que está transmitindo interrompeu o compartilhamento de um ou de todos os tipos de mídia (vídeo, áudio e/ou tela). Isso pode ocorrer quando um usuário desconecta uma câmera ou um microfone usado como fonte de mídia para o Publisher. Ou pode ocorrer quando um usuário fecha uma janela, caso as fontes de vídeo e áudio da transmissão sejam elementos `MediaStreamTrack` e as faixas sejam interrompidas ou destruídas.
Veja: : - MediaStoppedEvent
mediaStreamAvailable
Enviado quando o MediaStream estiver disponível.
Veja: : - Evento
silenciarForçado
Um moderador forçou esse usuário a silenciar o áudio.
Veja: : - Evento - Session.forceMuteAll() - Session.forceMuteStream() - Silenciar o áudio das transmissões em uma sessão
networkConditionChanged
É disparado quando é detectada uma alteração nas condições de rede do editor.
Este evento difere de videoDisabled e videoEnabled eventos, na medida em que relata
alterações na integridade da rede, em vez de alterações no estado da trilha de vídeo do editor. As aplicações podem usar esse evento para responder
a problemas de rede, como atualizar a interface do usuário, registrar dados de telemetria ou acionar um comportamento adaptativo.
As propriedades desse evento são:
reason— Indica a causa do evento. Atualmente, será sempre"networkConditionChanged"statsContainer— Objeto que contém um instantâneo completo das estatísticas atuais, estruturado de forma idêntica ao objeto retornado por umgetStats()invocação. Observe que, para um editor em uma sessão retransmitida, o objeto de estatísticas contém umconnectionIde umsubscriberId, já que o provedor envia um fluxo separado para cada assinante e as estatísticas são relatadas por assinante. Isso permite que o usuário identifique qual assinante pode estar enfrentando problemas de desempenho na rede. Em sessões retransmitidas, apenas as estatísticas correspondentes ao assinante afetado são incluídas no evento.
Veja: : - Evento
streamCreado
O editor iniciou a transmissão para a sessão.
Veja: : - StreamEvent - Session.publish()
streamDestruído
O publisher interrompeu a transmissão para a sessão. O comportamento padrão é que
o objeto Publisher seja removido do DOM HTML. O objeto Publisher dispara um
destroyed evento que ocorre quando o elemento é removido do DOM HTML. Se você chamar o
preventDefault() método do objeto de evento no ouvinte de eventos, o comportamento padrão
é impedido, e você pode, opcionalmente, reter o Publisher para reutilização ou liberá-lo
usando seu próprio código.
Veja: : - StreamEvent
videoDimensionsChanged
Enviado quando o local do editor <video> O elemento detecta uma alteração
na dimensão. Quando o editor está publicando ativamente, isso também atualiza o
stream.videoDimensions propriedade. Exemplos do que pode fazer com que o elemento de vídeo local
mude de tamanho:
- Quando
stream.videoTypeestá definido como"screen"(compartilhamento de tela) e o usuário redimensiona a janela capturada. - Quando o vídeo está sendo publicado a partir de um dispositivo móvel e o usuário gira o dispositivo, fazendo com que a orientação da câmera mude.
- Quando a editora ligar Editor#definirResoluçãoPreferida, alterando a resolução de captura do alvo.
Este objeto de evento possui um newValue propriedade e um oldValue propriedade,
que representa as dimensões nova e antiga do vídeo. Cada uma delas possui uma height
propriedade e um width propriedade que representa a altura e a largura, em pixels.
Veja: : - Evento de alteração das dimensões do vídeo
vídeo desativado
Enviado quando o vídeo do editor está desativado.
Antes de enviar este evento, quando a qualidade do stream do Emissor se deteriora a um nível
tão baixo que o stream de vídeo corre o risco de ser desativado, o Emissor
envia um videoDisableWarning evento.
Se a conectividade melhorar a ponto de permitir novamente a exibição de vídeo, o objeto Publisher dispara
um videoEnabled evento, e o assinante volta a receber o vídeo.
Por padrão, o Publisher exibe um indicador de vídeo desativado quando um
videoDisabled O evento com esse motivo é acionado e remove o indicador
quando o videoEnabled O evento com esse motivo é acionado. Você pode controlar
a exibição desse ícone definindo o videoDisabledDisplayMode com o
Publisher.setStyle() método ou definindo o videoDisabledDisplayMode
style propriedade ao inicializar o Publisher com o
OT.initPublisher() método.
Você pode ativar esse recurso de alternativa apenas de áudio definindo o
publisher propriedade para true no
audioFallback opção passada
para o OT.initPublisher() método para o cliente de publicação. (Veja
OT.initPublisher().)
Veja: : - Evento - videoDesativarAviso evento - videoEnabled evento
videoDesativarAviso
Enviado quando o Editor determina que a qualidade da transmissão se deteriorou
e o vídeo será desativado caso a qualidade se deteriore ainda mais. Se a qualidade se deteriorar ainda mais,
o Editor desativa o vídeo e envia um videoDisabled evento.
Por padrão, o Publisher exibe um indicador de aviso de vídeo desativado quando esse evento
é disparado (e o vídeo está desativado). É possível controlar a exibição desse ícone
chamando o setStyle() método do Publisher e
definir o videoDisabledDisplayMode propriedade, ou você pode definir o
videoDisabledDisplayMode propriedade ao chamar o
OT.initPublisher() método e definindo o style propriedade
do properties parâmetro.
Veja: : - Evento - vídeo desativado evento - videoDisableWarningLifted evento
videoDisableWarningLifted
É disparado quando o Publisher determina que a qualidade da transmissão melhorou
a ponto de o vídeo que está sendo desativado não representar mais um risco imediato. Esse evento é
disparado após o objeto Publisher disparar um videoDisableWarning evento.
Veja: : - Evento - videoDesativarAviso evento - vídeo desativado evento
videoElementCreated
É disparado quando o elemento de vídeo do Publisher é criado. Adicione um ouvinte para este evento ao
definir o insertDefaultUI opção de false na chamada para o
OT.initPublisher() método. O element
A propriedade do objeto de evento é uma referência ao Publisher's video elemento
(ou, no Internet Explorer, o object elemento que contém o vídeo). Adicione-o ao
DOM HTML para exibir o vídeo. Ao definir o insertDefaultUI opção para
false, o video (ou object) não é
inserido automaticamente no DOM.
Adicione um ouvinte para este evento somente se você tiver definido o insertDefaultUI opção para
false. Se você ainda não tiver definido insertDefaultUI opção para
false, não mova o video (ou object) no
DOM HTML. Isso faz com que o objeto Publisher seja destruído.
Veja: : - Evento de criação do elemento de vídeo
videoEnabled
É disparado quando o Publisher retoma o envio de vídeo ao Publisher após o vídeo ter sido desativado anteriormente.
Veja: : - Evento - vídeo desativado evento
alteração na qualidade do vídeo
É enviado quando o Publisher detecta uma alteração significativa na qualidade do vídeo, como quedas na resolução ou degradação da qualidade devido à largura de banda ou à CPU.
Este evento difere de videoDisabled e videoEnabled Eventos do Publisher, na medida em que
relatam alterações relevantes na qualidade do vídeo. videoDisabled e videoEnabled indica apenas
que a trilha de vídeo do assinante foi ativada ou desativada (por exemplo, devido a uma atualização de propriedade do stream ou
ao recurso de fallback de áudio). Em contrapartida, esse evento fornece informações de diagnóstico sobre as causas da degradação da qualidade — tais
como limitações de CPU ou largura de banda — e também pode ser acionado mesmo quando o vídeo permanece ativado.
O objetivo principal deste evento é indicar os motivos de limitação de qualidade. É possível que a resolução
ou a camada de vídeo sejam alteradas mesmo quando o motivo não for explicitamente uma mudança de resolução — por exemplo, como consequência
de limitações da CPU. Consulte as estatísticas atualizadas fornecidas no evento para obter o contexto completo. Quando um
motivo de degradação da qualidade anteriormente ativo for resolvido, o evento será acionado novamente com "none"
como motivo.
O reason A propriedade define o motivo da alteração na qualidade do vídeo. Ela pode ser definida como um dos
seguintes valores:
"bandwidth"— Deterioração da qualidade devido à largura de banda insuficiente da rede"cpu"— Deterioração da qualidade causada por limitações da CPU no dispositivo do cliente"other"— Outros motivos não especificados"codecChange"— Indica que o codec de vídeo foi alterado"resolutionChange"— Isso pode ocorrer devido a restrições de taxa de bits, adaptação do codificador, alterações na fonte da câmera (por exemplo, troca de câmera ou alteração da resolução de entrada) ou alterações na configuração, e nem sempre implica em perda de qualidade"none"— Quando um motivo de degradação da qualidade que estava ativo anteriormente é cancelado
O statsContainer A propriedade define um objeto que contém um instantâneo completo das estatísticas atuais,
estruturado de forma idêntica ao objeto retornado por um getStats() invocação. Observe que, para um editor em
uma sessão retransmitida, o objeto de estatísticas contém um connectionId e um subscriberId, já que o
emissor envia um fluxo separado para cada assinante e as estatísticas são relatadas por assinante. Isso permite que o usuário
distinga qual assinante pode estar enfrentando uma degradação na qualidade. Em sessões retransmitidas, apenas as estatísticas
correspondentes ao assinante afetado são incluídas no evento.
Veja: : - Evento