El primer paso para utilizar la Video API de Vonage es llamar a la OT.initSession()
método. Otros métodos del objeto OT comprueban los requisitos del sistema y configuran el registro de errores.
Métodos
| Nombre | Descripción |
|---|---|
(static) addEventListener(type, listener) |
Este método está en desuso. |
(static) checkScreenSharingCapability(callback) → {Promise.<ScreenSharingCapabilityResponse>} |
Comprueba si el navegador del cliente admite la publicación de transmisiones en las que se comparte la pantalla. |
(static) checkSystemRequirements() → {Number} |
Comprueba si el sistema es compatible con la Video API de Vonage para WebRTC. |
(static) getActiveAudioOutputDevice() |
Devuelve una Promise que resuelve el dispositivo de salida de audio actual. |
(static) getAudioOutputDevices() |
Enumera los dispositivos de salida de audio (como los altavoces) disponibles para el navegador. |
(static) getDevices(callback) → {Promise.<Array.<Device>>} |
Enumera los dispositivos de entrada de audio (como micrófonos) y los dispositivos de entrada de vídeo (cámaras) disponibles para el navegador. |
(static) getSupportedCodecs() → {Promise} |
Obtiene la lista de códecs compatibles para la codificación y descodificación de flujos de vídeo. |
(static) getUserMedia(options) → {Promise} |
Obtiene un objeto `MediaStream` que utiliza un micrófono y una cámara como fuentes de audio y vídeo. |
(static) hasEndToEndEncryptionSupport() → {Boolean} |
Si el cliente admite el cifrado de extremo a extremo. |
(static) hasMediaProcessorSupport(mediaType) → {Boolean} |
Si el cliente es compatible con procesadores multimedia, como filtros de vídeo y audio. |
(static) initPublisher(targetElement, properties, completionHandler) → {Publisher} |
Inicializa y devuelve un objeto Publisher. |
(static) initSession(apiKey, sessionId, options) → {Session} |
Inicializa y devuelve el objeto de sesión local correspondiente a un ID de sesión específico. |
(static) log(message) |
Envía una cadena a la consola del depurador. |
(static) off(type, handler, context) |
Elimina un controlador de eventos. |
(static) on(type, handler, context) |
Añade una función de gestión de eventos para uno o varios eventos. |
(static) once(type, handler, context) |
Añade una función de gestión de eventos para un evento. |
(static) registerScreenSharingExtension(kind, id, version) |
Registra una extensión para que la función de compartir pantalla sea compatible con versiones anteriores de Chrome u Opera. |
(static) removeEventListener(type, listener) |
Este método está en desuso. |
(static) reportIssue(completionHandler) → {Promise.<string>} |
Informa de que tu aplicación ha tenido un problema. |
(static) setAudioOutputDevice() → {Promise} |
Establece el nuevo dispositivo de salida de audio. |
(static) setLogLevel(logLevel) |
Establece el nivel de registro de la API. |
(static) setProxyUrl() |
Establece la URL del servidor proxy IP. |
(static) unblockAudio() |
Hace que el audio de los suscriptores se reproduzca en los navegadores en los que está bloqueado. |
(static) upgradeSystemRequirements() |
Muestra información sobre los requisitos del sistema para la Video API de Vonage para WebRTC. |
(estático) addEventListener(tipo, oyente)
Este método está obsoleto. Utiliza on() o una vez() en su lugar.
Registra un método como detector de eventos para un evento concreto.
El objeto OT genera un tipo de evento: un exception evento. El
siguiente código añade un detector de eventos para el exception evento:
OT.addEventListener("exception", exceptionHandler);
function exceptionHandler(event) {
alert("exception event. \n code == " + event.code + "\n message == " + event.message);
}
Si no hay ningún controlador registrado para un evento, este se ignora a nivel local. Si la función de escucha del evento no existe, el evento se ignora a nivel local.
Lanza una excepción si el listener El nombre no es válido.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
type |
Cadena | La cadena que identifica el tipo de evento. |
listener |
función | La función que se invocará cuando el objeto OT envíe el evento. |
(estático) checkScreenSharingCapability(callback) → {Promise.<ScreenSharingCapabilityResponse>}
Comprueba si el navegador del cliente admite la publicación de transmisiones de pantalla compartida. El objeto devuelto por la promesa indica si se admite la pantalla compartida, así como qué fuentes de pantalla compartida (aplicación, pantalla o ventana) son compatibles. También indica si se requiere una extensión, si está instalada y si está registrada (en caso necesario).
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 tiene las siguientes propiedades que indican que el cliente admite la publicación de transmisiones de pantalla compartida:
extensionInstalled(Booleano) — En versiones anteriores de Chrome y Opera, este valor está establecido entruesi la extensión está instalada y registrada. En Chrome 72 o superior, Firefox 52 o superior, Safari 13 o superior, Opera 59 o superior, Edge 79 o superior e Internet Explorer, esta propiedad no está definida.supported(Booleano) — Establecer entruesi el navegador admite la función de compartir pantalla. Comprueba elextensionRequiredpropiedad para comprobar si el navegador necesita una extensión para compartir pantalla.supportedSources(Objeto) — Obsoleto. En versiones anteriores del navegador, se podía seleccionar un tipo de fuente para compartir pantalla (como"application","browser","screen", o"window"estableciendo elvideoSourcepropiedad de las opciones pasadas a laOT.initPublisher()método. Sin embargo, en los navegadores actuales que admiten la función de compartir pantalla, al pasar cualquiera de estos valores se produce el mismo comportamiento: el navegador muestra un cuadro de diálogo en el que el usuario final selecciona la fuente que se va a compartir (que puede ser toda la pantalla o una ventana concreta). En Electron, la función de compartir pantalla captura toda la pantalla, sin solicitar permiso al usuario.
El parámetro «options» también incluye las siguientes propiedades, que se aplican a la función de compartir pantalla en versiones anteriores de Chrome y Opera (en el resto de navegadores, estas propiedades no están definidas):
extensionRequired(Cadena) — Establecer en"chrome"en versiones anteriores de Chrome y Opera, que requieren la instalación de una extensión para compartir pantalla. Esta propiedad no está definida en otros navegadores.extensionRegistered(Booleano) — En versiones anteriores de Chrome y Opera, esta propiedad está establecida entruesi hay alguna extensión de pantalla compartida registrada; en caso contrario, se establece enfalse. En otros navegadores (que no requieren una extensión), esta propiedad no está definida. Utiliza laOT.registerScreenSharingExtension()Método para registrar una extensión de compartición de pantalla en versiones anteriores de Chrome u Opera.
Chrome 72 o superior, Firefox 52 o superior, Safari 13 o superior, Edge 79 o superior y Opera 59 o superior incorporan de serie la función de
compartir pantalla, sin necesidad de ninguna extensión. (Ten en cuenta que la compatibilidad con el complemento de la Video API de Vonage
para Internet Explorer se ha eliminado en la versión 2.17 de la Video API de Vonage.) La función de compartir pantalla es
no compatible con los navegadores móviles. En Electron, la función de compartir pantalla es compatible si
el webPreferences.contextIsolation La opción de la ventana del navegador Electron está
configurada en false o si la aplicación utiliza un script de precarga para acceder a la herramienta de captura de escritorio.
(El valor por defecto de webPreferences.contextIsolation es la opción true
en Electron 12 y false (en versiones anteriores). Para publicar un vídeo de pantalla compartida
en versiones anteriores de Chrome u Opera, el cliente instala una extensión que permite publicar una
transmisión de vídeo de pantalla compartida en tu dominio. La Video API de Vonage
extensiones para compartir pantalla
El ejemplo incluye código para crear una extensión que permita compartir la pantalla en
versiones anteriores de Chrome y Opera.
Para más información, consulte el Video API de Vonage: uso compartido de pantalla guía del desarrollador.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
callback |
función | Función de devolución de llamada opcional que se invoca con el objeto de opciones de soporte pasado como parámetro. |
Véase: : - OT.initPublisher() - OT.registerScreenSharingExtension()
Devoluciones:
Una promesa con potencial
(estático) checkSystemRequirements() → {Number}
Comprueba si el sistema es compatible con la Video API de Vonage para WebRTC. Ten en cuenta que este método se invoca
automáticamente al llamar a OT.initPublisher() o OT.initSession(),
y si el sistema no es compatible con la Video API de Vonage, la biblioteca OpenTok.js muestra un mensaje
al usuario. Llama a la OT.checkSystemRequirements() método antes de llamar a
OT.initPublisher() o OT.initSession() si no quieres que la
biblioteca muestre ese mensaje.
Véase: : - OT.upgradeSystemRequirements()
Devoluciones:
Si el sistema es compatible con la Video API de Vonage para WebRTC (1) o no (0).
(estático) getActiveAudioOutputDevice()
Devuelve una Promise que resuelve el dispositivo de salida de audio actual.
El método devuelve una Promise que resuelve un objeto con dos propiedades:
deviceId y label, cada uno de los cuales es una cadena.
El deviceId La propiedad es un identificador único del dispositivo. Puedes pasar
el deviceId como parámetro de la OT.setAudioOutputDevice() método. En deviceId
La propiedad se establece en «undefined» si el usuario no ha concedido previamente acceso a
una cámara y un micrófono.
El label La propiedad identifica el dispositivo. La label
Esta propiedad se establece en una cadena vacía si el usuario no ha concedido previamente acceso a
una cámara y un micrófono.
Nota: Actualmente, es compatible con las versiones de escritorio de Chrome 49 o superior, Edge 17 o superior, Opera 36 o superior y las versiones recientes de Samsung Internet, WebView para Android y WebView para iOS.
Véase: : - OT.getAudioOutputDevices() - OT.setAudioOutputDevice()
(estático) getAudioOutputDevices()
Enumera los dispositivos de salida de audio (como los altavoces) disponibles para el navegador.
El método devuelve una Promise que se resuelve en un array de objetos correspondientes a
los dispositivos de salida de audio disponibles. Cada objeto tiene dos propiedades: deviceId
y label, cada uno de los cuales es una cadena.
El deviceId La propiedad es un identificador único del dispositivo. Puedes pasar
el deviceId como parámetro de la OT.setAudioOutputDevice() método. En deviceId
La propiedad se establece en «undefined» si el usuario no ha concedido previamente acceso a
una cámara y un micrófono. En caso de que no haya dispositivos de salida de audio disponibles, la propiedad
se establece en null.
El label La propiedad identifica el dispositivo. La label
Esta propiedad se establece en una cadena vacía si el usuario no ha concedido previamente acceso a
una cámara y un micrófono.
Notas::
- Actualmente, es compatible con las versiones de escritorio de Chrome 49 o superior, Edge 17 o superior, Opera 36 o superior y las versiones recientes de Samsung Internet, WebView para Android y WebView para iOS.
- Es posible que el navegador limite a uno el número de dispositivos de salida de audio mostrados antes de que el usuario haya concedido acceso a una cámara o a un micrófono.
Véase: : - OT.setAudioOutputDevice() - OT.getActiveAudioOutputDevice()
(estático) getDevices(callback) → {Promise.<Array.<Device>>}
Enumera los dispositivos de entrada de audio (como micrófonos) y los dispositivos de entrada de vídeo
(cámaras) disponibles para el navegador. Devuelve una promesa que contiene la matriz de
dispositivos. Cada objeto tiene tres propiedades: kind,
deviceIdy label, cada uno de los cuales es una cadena.
El kind se establece en "audioInput" para dispositivos
de entrada de audio o "videoInput" para dispositivos de entrada de vídeo.
El deviceId La propiedad es un identificador único del dispositivo. Puedes pasar
el deviceId como el audioSource o videoSource
propiedad de la options del
OT.initPublisher() método.
El label La propiedad identifica el dispositivo. La label
Esta propiedad se establece en una cadena vacía si el usuario no ha concedido previamente acceso a
una cámara y un micrófono.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
callback |
función | Función de devolución de llamada opcional que se ejecuta cuando la lista de dispositivos está disponible. Esta función admite dos parámetros: - error — Se asigna un objeto de error a esta variable cuando se produce un error al llamar a este método; se establece en null cuando la llamada se realiza correctamente. - devices — Una matriz de objetos que corresponden a los micrófonos y cámaras disponibles. Nota: El navegador puede limitar a uno el número de dispositivos de entrada de audio y vídeo que se muestran antes de que el usuario haya concedido acceso a la cámara o al micrófono. |
Véase: : - OT.initPublisher()
Devoluciones:
Una promesa que contiene la lista de dispositivos
(estático) getSupportedCodecs() → {Promise}
Obtiene la lista de códecs compatibles para la codificación y descodificación de flujos de vídeo.
El siguiente ejemplo obtiene la lista de códecs compatibles para la codificación y decodificación de flujos 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);
}
})();
Puedes utilizar las listas de códecs de vídeo compatibles para determinar si el cliente admite vídeo, en función del códec de vídeo preferido y del tipo de sesión que se esté utilizando. Puedes configurar el códec de vídeo preferido en la página «Proyecto» de tu Cuenta API de Video de Vonage. En sesiones enrutadas (sesiones que utilizan el enrutador multimedia de la Video API de Vonage), se utiliza el códec de vídeo preferido para todos los clientes de la sesión. En las sesiones retransmitidas, los clientes envían flujos directamente entre sí, y cada par de «publicador-suscriptor» intenta encontrar un códec de vídeo común que ambos puedan utilizar. En este sentido, el códec de vídeo utilizado por el par en una sesión retransmitida puede ser diferente del códec de vídeo preferido establecido. Para obtener más información, consulte la Video API de Vonage Códecs de vídeo guía del desarrollador.
Devoluciones:
Una promesa que se resuelve cuando la lista de códecs compatibles está lista.
La promesa se resuelve (en caso de éxito) con un objeto que tiene dos propiedades:
videoDecoders, una serie de códecs de vídeo compatibles para la decodificación, y
videoEncoders, una serie de códecs de vídeo compatibles para la codificación, tales como:
{
videoDecoders: ['H264', 'VP8', 'VP9'],
videoEncoders: ['H264', 'VP8', 'VP9']
}
La promesa se rechaza si se produce un error al obtener la lista.
(estático) getUserMedia(opciones) → {Promise}
Obtiene un objeto `MediaStream` que utiliza un micrófono y una cámara como fuentes de audio y vídeo. Este método devuelve una promesa que se resuelve cuando el usuario ha concedido permiso para utilizar la cámara o el micrófono (o ambos) y el objeto `MediaStream` está disponible. La promesa se rechaza si se produce un error al obtener los medios o si el usuario final deniega el acceso a la cámara o al micrófono.
Puedes utilizar este método para obtener objetos `MediaStreamTrack` y pasarlos a la
audioSource y videoSource opciones del
OT.initPublisher() método. Por ejemplo, llama a este método
para obtener un MediaStream que utilice el micrófono y la cámara como fuentes de audio y vídeo. A continuación,
puedes llamar a getVideoTracks()[0] en el objeto MediaStream para obtener un objeto
MediaStreamTrack correspondiente al vídeo de la cámara. A continuación, puedes añadir el objeto MediaStreamTrack
como fuente para un elemento Video de HTML, dibujar ese elemento Video en un elemento Canvas de HTML y
aplicar filtros o efectos de vídeo al Canvas. Después, puedes llamar a la captureStream()
método del objeto HTMLCanvasElement para obtener un objeto MediaStream y llamar a
getVideoTracks()[0] en el objeto MediaStream para obtener un objeto MediaStreamTrack
de vídeo (con los filtros o efectos de vídeo aplicados). Por último, puedes utilizar el objeto
MediaStreamTrack de vídeo como el videoSource propiedad de las opciones que pasas
a OT.initPublisher(). El editor de la Video API de Vonage utilizará la
pista de vídeo (con los filtros y efectos aplicados) como fuente de vídeo.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
options |
Objeto | (opcional) Define los parámetros del objeto MediaStream. Las opciones son las mismas que las definidas para el OT.initPublisher() método. Sin embargo, solo se aplican las siguientes propiedades para OT.getUserMedia(): - audioSource - autoGainControl - disableAudioProcessing - echoCancellation - enableStereo - facingMode - frameRate - maxResolution - noiseSuppression - resolution - videoSource |
Véase:
: - Las opciones (especialmente audioSource y videoSource) del
OT.initPublisher() método
Devoluciones:
Una promesa que se resuelve cuando el usuario ha concedido permiso para utilizar la cámara o el micrófono (o ambos) y el objeto `MediaStream` está disponible. La promesa se rechaza si se produce un error al obtener los datos multimedia, si el usuario final deniega el acceso a la cámara o al micrófono, o si el método se invoca en Internet Explorer.
(estático) hasEndToEndEncryptionSupport() → {Boolean}
Si el cliente admite el cifrado de extremo a extremo.
El siguiente ejemplo habilita el cifrado de extremo a extremo, siempre que el cliente lo admita:
// Publish in a session with end-to-end encryption, if supported
if (OT.hasEndToEndEncryptionSupport()) {
session.publish(publisher, error) = {
...
});
}
Véase: : - OT.initSession() - Session.publish()
Devoluciones:
Si el cliente admite el cifrado de extremo a extremo (true),
o no (false).
(estático) hasMediaProcessorSupport(mediaType) → {Boolean}
Si el cliente es compatible con procesadores multimedia, como filtros de vídeo y audio.
El siguiente ejemplo activa el filtro de desenfoque de fondo, si el cliente lo admite:
// 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:
| Nombre | Tipo | Descripción |
|---|---|---|
mediaType |
Cadena | «audio», «vídeo» o «ambos». El valor predeterminado es «ambos». |
Véase: : - OT.initPublisher() - Publisher.applyVideoFilter() - Publisher.applyAudioFilter()
Devoluciones:
Si el cliente es compatible con procesadores multimedia (true), como
los filtros de vídeo y audio, o no (false).
(estático) initPublisher(elementoDestino, propiedades, controladorDeFinalización) → {Editorial}
Inicializa y devuelve un objeto Publisher. A continuación, puedes pasar este objeto Publisher
a Session.publish() para publicar un flujo en una sesión.
Nota: Si tienes intención de reutilizar un objeto Publisher para publicar en diferentes sesiones
(o en la misma sesión) de forma secuencial, añade un detector de eventos para el streamDestroyed
evento enviado por el objeto Publisher (cuando deja de publicar). En el oyente de eventos,
llama a la preventDefault() método del objeto de evento para evitar que el
vídeo del editor se elimine de la página.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
targetElement |
Objeto | (Opcional) El elemento DOM o el id atributo del elemento DOM existente que se utiliza para determinar la ubicación del vídeo de Publisher en el DOM HTML. Consulta el insertMode propiedad del properties parámetro. Si no se especifica un targetElement, la aplicación añade un nuevo elemento DOM al código HTML body. La aplicación genera un error si hay un elemento cuyo ID sea el targetElement El valor no existe en el DOM de HTML. |
properties |
Objeto | (Opcional) Este objeto contiene las siguientes propiedades (todas ellas opcionales): - velocidad de bits de audio (Número) — La tasa de bits deseada para el audio publicado, en bits por segundo. El rango de valores admitido es de 6.000 a 510.000. (Los valores no válidos se ignoran.) Establece este valor para habilitar audio de alta calidad (o para reducir el uso de ancho de banda con audio de menor calidad). Los ajustes recomendados son los siguientes: - Entre 8.000 y 12.000 para voz de banda estrecha (NB) - Entre 16.000 y 20.000 para voz de banda ancha (WB) - 28.000 - 40 000 para voz de banda completa (FB) - 48 000 - 64 000 para música de banda completa (FB) El valor por defecto es 40 000. Actualmente, esta configuración no es compatible con las transmisiones publicadas en Firefox. - audioFallback (Objeto) — Un objeto que contiene propiedades que definen si la transmisión utilizará la función de audio de reserva. El audioFallback El objeto incluye las siguientes propiedades: - publisher (Booleano) — Indica si la transmisión utilizará la función de audio de reserva del emisor (true) o no (por defecto false). La función de audio de reserva del editor está disponible tanto en sesiones enrutadas (sesiones que utilizan el Enrutador multimedia de la Video API de Vonage) y sesiones retransmitidas. Cuando la función de recambio de audio del emisor está activada, si se detecta que la calidad de un emisor se ha degradado significativamente, se desactiva el vídeo de dicho emisor para preservar la calidad del audio. Para obtener más información, consulta la sección «Emisor» vídeo desactivado, videoDesactivarAviso, videoAdvertencia desactivada, y videoEnabled eventos. - subscriber (Booleano) — Indica si la transmisión utilizará la función de audio de reserva para suscriptores (true) o no (false). La función de recambio de audio está disponible en las sesiones que utilizan el enrutador multimedia de la Video API de Vonage. Con la función de «audio-fallback» activada (por defecto), cuando el servidor determina que la calidad de una transmisión se ha degradado significativamente para un suscriptor concreto, desactiva el vídeo para ese suscriptor con el fin de preservar la calidad del audio. Para las transmisiones que utilizan una cámara como fuente de vídeo, la configuración por defecto es true (la función de audio alternativo está activada). La configuración predeterminada es false (la función de audio alternativo está desactivada) para las transmisiones de pantalla compartida, que tienen la videoSource propiedad establecida en "application", "screen", o "window" en el OT.initPublisher() opciones. Para obtener más información, consulta la sección «Suscriptor» vídeo desactivado evento y El enrutador multimedia de la Video API de Vonage y los modos multimedia. - audioFilter (Objeto) — Un objeto que contiene las propiedades que definen el filtro de audio que se aplicará al flujo de audio del Publisher. Se admiten los siguientes filtros: - Filtro avanzado de supresión de ruido - Fije el type propiedad del objeto a "advancedNoiseSuppression".Nota: Los filtros de audio solo son compatibles con las versiones recientes de Chrome, Electron, Opera, Edge, Samsung Internet y WebView para Android. No son compatibles con otros navegadores (que no estén basados en Chromium) ni con iOS. Puedes comprobar si el cliente es compatible con esta función llamando a la función OT.hasMediaProcessorSupport('audio') método. Puedes cambiar el filtro de audio llamando al Publisher.applyAudioFilter() método. Puedes eliminar el filtro de audio llamando al Publisher.clearAudioFilter() método. - fuente de audio (String, MediaStreamTrack, Boolean o null) — El identificador del dispositivo de entrada de audio (como un micrófono) que utilizará el editor. Se puede obtener una lista de los dispositivos disponibles, incluidos los dispositivos de entrada de audio, llamando a la función OT.getDevices() método. Cada dispositivo que aparece en la lista de este método tiene un identificador de dispositivo único. Si se pasa un identificador de dispositivo que no coincide con ningún dispositivo de entrada de audio existente, la llamada a OT.initPublisher() da error (código de error 1500, «No se puede publicar») que se pasa a la función del controlador de finalización. Si estableces esta propiedad en null o false, el navegador no solicita acceso al micrófono y no se transmite ningún sonido. También puedes establecer esta propiedad en un audio MediaStreamTrack objeto. Esto te permite utilizar el objeto como fuente de audio para la transmisión publicada. Por ejemplo, puedes obtener una matriz de objetos MediaStreamTrack de audio a partir del audioTracks propiedad de un objeto HTMLMediaElement. O bien, puedes llamar a la getLocalStreams() o getRemoteStreams() método de un objeto `RTCPeerConnection` para obtener una matriz de objetos `MediaStream` y, a continuación, llamar al getAudioTracks() método de uno de los objetos `MediaStream` para obtener un objeto `MediaStreamTrack` de audio. - autoGainControl (Booleano) — Indica si se debe activar el control automático de ganancia para el audio publicado. Quizás te interese configurar esta opción en false al publicar audio de alta calidad (configurando el audioBitrate propiedad del OT.initPublisher() opciones). El valor por defecto es true. Esta configuración se ignora si se establece disableAudioProcessing a true (lo que desactiva la cancelación de eco, el control automático de ganancia y la supresión de ruido en la transmisión publicada). - desactivar la gestión de dispositivos de entrada de audio (Booleano) — Indica si se debe desactivar el cambio automático de dispositivo de entrada de audio. Quizás te interese configurar este valor en true si quieres encargarte tú mismo de la gestión del dispositivo. Nota: Esta es una función avanzada. No la utilices sin haber implementado primero la gestión de dispositivos para tu aplicación. Si la activas, el dispositivo de entrada de audio utilizado por el SDK no se actualizará cuando el usuario final cambie de micrófono. El valor por defecto es false. - disableAudioProcessing (Booleano) — Indica si se deben desactivar la cancelación de eco, el control automático de ganancia y la supresión de ruido para el audio publicado. Quizás te interese establecer este parámetro en true al publicar audio de alta calidad (configurando el audioBitrate propiedad del OT.initPublisher() opciones). El valor por defecto es false. - Cancelación de eco (Booleano) — Indica si se debe activar la cancelación de eco para el audio publicado. Quizás te interese establecer este valor en false al publicar audio de alta calidad (configurando el audioBitrate propiedad del OT.initPublisher() opciones). El valor por defecto es true. Esta configuración se ignora si se establece disableAudioProcessing a true (lo que desactiva la cancelación de eco, el control automático de ganancia y la supresión de ruido en la transmisión publicada). - enableStereo (Booleano) — Indica si se debe publicar audio estéreo. El valor por defecto es false. Nota: Algunos navegadores (como Chrome 73 y versiones posteriores) no admiten la cancelación de eco para el audio estéreo (véase este informe de problema de Chrome). - activarDtx (Booleano) — Si se debe habilitar Opus DTX. El valor por defecto es false. Si se configura esto en true puede reducir el consumo de ancho de banda en las transmisiones que presentan largos periodos de silencio. - facingMode (Cadena) — La posición preferida de la cámara que se utilizará para la fuente de vídeo. Por lo general, esta configuración solo se aplica a los dispositivos móviles. Se puede establecer en uno de los siguientes valores: - "user" — La cámara frontal. - "environment" — La cámara trasera. - "left" — La cámara está orientada hacia el usuario, pero hacia la izquierda (poco habitual). - "right" — La cámara está orientada hacia el usuario, pero hacia la derecha (poco habitual). - fitMode (Cadena) — Determina cómo se muestra el vídeo si sus dimensiones no coinciden con las del elemento DOM. Puedes establecer esta propiedad en uno de los siguientes valores: - "cover" — El vídeo se recorta si sus dimensiones no coinciden con las del elemento DOM. Esta es la configuración predeterminada para los vídeos que publican imágenes de una cámara. - "contain" — El vídeo se muestra con bandas negras si sus dimensiones no coinciden con las del elemento DOM. Esta es la configuración predeterminada para los vídeos compartidos en pantalla. - frecuencia de fotogramas (Número) — La frecuencia de fotogramas deseada, en fotogramas por segundo, del vídeo. Los valores válidos son 30, 15, 7 y 1. La transmisión publicada utilizará el valor más cercano que admita el cliente de publicación. La frecuencia de fotogramas puede diferir ligeramente del valor que se haya establecido, dependiendo del navegador del cliente. Además, el vídeo solo utilizará la frecuencia de fotogramas deseada si la configuración del cliente la admite. Si el editor especifica una frecuencia de fotogramas, la frecuencia de fotogramas real de la transmisión de vídeo se establece como la frameRate propiedad del objeto Stream, aunque la frecuencia de fotogramas real variará en función de las condiciones cambiantes de la red y del sistema. Si el desarrollador no especifica una frecuencia de fotogramas, esta propiedad no está definida. Además, si la fuente de vídeo es un objeto MediaStreamTrack (véase el videoSource), este valor se ignora y la frecuencia de fotogramas viene determinada por el objeto `MediaStreamTrack`, al que se puede acceder llamando a la función getConstraints() método del objeto MediaStreamTrack. Para las sesiones que utilizan el Media Router de la Video API de Vonage (sesiones con el modo multimedia Si se configura en «routed», al reducir la frecuencia de fotogramas se reduce proporcionalmente el ancho de banda máximo que utiliza la transmisión. Sin embargo, en sesiones con el modo multimedia configurado en «relayed», al reducir la frecuencia de fotogramas no se reduce el ancho de banda de la transmisión. También puedes restringir la frecuencia de fotogramas de la transmisión de vídeo de un suscriptor. Para restringir la frecuencia de fotogramas de un suscriptor, llama a la función restrictFrameRate() método del suscriptor, pasando como parámetro true. (Véase Subscriber.restrictFrameRate().) - altura (Número o cadena) — La altura inicial deseada del vídeo de Publisher que se muestra en la página HTML (por defecto: 198 píxeles). Puede especificar el número de píxeles como un número (por ejemplo, 300) o como una cadena que termine en «px» (por ejemplo, «300px»). También puede especificar un porcentaje del tamaño del elemento padre, mediante una cadena que termine en «%» (por ejemplo, «100%»). Nota: Para cambiar el tamaño del vídeo del editor, ajusta el CSS del elemento DOM del editor (el element propiedad del objeto Publisher) o (si la altura se especifica como un porcentaje) su elemento DOM padre (véase Cambiar el tamaño o la posición de un vídeo). - iniciales (Cadena) — Las iniciales de esta transmisión. Estas iniciales aparecen centradas y en mayúsculas en las vistas del editor y del suscriptor cuando el vídeo está desactivado y no hay backgroundImageURI está establecido. Si backgroundImageURI Si está configurado, tiene prioridad y se muestra en lugar de las iniciales. Las iniciales también se configuran como el initials propiedad del objeto Stream. Se aceptará cualquier cadena de uno o dos caracteres (en mayúsculas o minúsculas). Si se utilizan iniciales no válidas, no se generará ningún error y las iniciales no se establecerán. - insertDefaultUI (Booleano) — Indica si se debe utilizar la interfaz de usuario predeterminada de la Video API de Vonage (true, el valor por defecto) o no (false). El elemento de interfaz de usuario predeterminado contiene controles de interfaz de usuario, un indicador de carga de vídeo y el recorte automático del vídeo o el formato «letterbox», además del vídeo. (Si dejas insertDefaultUI establecer en true, puedes controlar los ajustes individuales de la interfaz de usuario mediante el fitMode, showControlsy style opciones.) Si configuras esta opción en false, OpenTok.js no inserta ningún elemento de interfaz de usuario predeterminado en el DOM HTML, y el element La propiedad del objeto Publisher no está definida. En su lugar, el objeto Publisher envía un videoElementCreated evento en el que el video (o en Internet Explorer el elemento object Se crea el elemento que contiene el vídeo. El element La propiedad del objeto de evento es una referencia al Publisher's video (o object) elemento. Añádelo al DOM HTML para mostrar el vídeo. Establece esta opción en false Si quieres cambiar el editor de video (o object) del DOM HTML. Si lo configuras en falseno ponga el targetElement parámetro. (Esto da lugar a un error que se transmite a la OT.initPublisher() función de devolución de llamada.) Para añadir el vídeo al DOM de HTML, añade un detector de eventos para el videoElementCreated evento y, a continuación, añade el element propiedad del objeto de evento en el DOM de HTML. - insertMode (Cadena) — Especifica cómo se insertará el objeto Publisher en el DOM HTML. Consulte la targetElement parámetro. Esta cadena puede tener los siguientes valores: - "replace" — El objeto Publisher sustituye el contenido del targetElement. Este es el valor por defecto. - "after" — El objeto Publisher es un nuevo elemento insertado después del targetElement en el DOM HTML. (Tanto el Publisher como el targetElement tienen el mismo elemento padre.) - "before" — El objeto «Publisher» es un nuevo elemento insertado antes del «targetElement» en el DOM de HTML. (Tanto «Publisher» como «targetElement» tienen el mismo elemento padre.) - "append" — El objeto «Publisher» es un nuevo elemento añadido como elemento secundario del «targetElement». Si hay otros elementos secundarios, el «Publisher» se añade al final como último elemento secundario del «targetElement». - resolución máxima (Objeto) — Establece la resolución máxima para la transmisión. Esta configuración solo se aplica cuando el videoSource La propiedad está establecida en "application", "screen", o "window" (cuando el editor comparte su pantalla). La resolución de la transmisión coincidirá con la región de pantalla capturada, a menos que dicha región sea mayor que la maxResolution Configuración. Establece este valor en un objeto que tenga dos propiedades: width y height (ambos números). El valor máximo para cada uno de los width y height El número de propiedades es 1920 y el valor mínimo es 10. - espejo (Booleano) — Indica si la imagen de vídeo del editor aparece invertida en la página del editor. El valor por defecto es true (la imagen del vídeo está invertida), salvo en el caso de un vídeo de pantalla compartida (cuando el videoSource se establece en "application", "screen", o "window" (en cuyo caso el valor por defecto es false). Esta propiedad no afecta a la visualización del vídeo por parte de los suscriptores. - nombre (Cadena) — El nombre de este flujo. El nombre aparece en la parte inferior de los vídeos de los suscriptores. El valor por defecto es "" (una cadena vacía). Si se establece un valor superior a 1000 caracteres, se producirá una excepción en tiempo de ejecución. - supresión de ruido (Booleano) — Indica si se debe activar la supresión de ruido en el audio publicado. Quizás te interese configurar este parámetro en false al publicar audio de alta calidad (configurando el audioBitrate propiedad del OT.initPublisher() opciones). El valor por defecto es true. Esta configuración se ignora si se establece disableAudioProcessing a true (lo que desactiva la cancelación de eco, el control automático de ganancia y la supresión de ruido en la transmisión publicada). - códecs de vídeo preferidos ('automatic' o Matriz de 'vp8', 'vp9', 'h264') — Establece la prioridad de los códecs de vídeo preferidos para la publicación. Si no se especifica, el SDK utiliza la configuración predeterminada del proyecto. Establecer en 'automatic' para que el SDK elija el orden más adecuado. O bien, proporcionar una matriz explícita para especificar la preferencia de códec (por ejemplo, ['vp9', 'h264']). Si no es válido (por ejemplo, un array vacío o un códec no compatible), la inicialización del editor falla con un OT_INVALID_PARAMETER error. - publicar audio (Booleano) — Indica si se debe publicar inicialmente el audio de la transmisión (por defecto: true). Esta configuración se aplica cuando se pasa el objeto Publisher en una llamada a la Session.publish() método. - publicarVídeo (Booleano) — Indica si se debe publicar inicialmente el vídeo para la retransmisión (por defecto: true). Esta configuración se aplica cuando se pasa el objeto Publisher en una llamada a la Session.publish() método. - publicar subtítulos (Booleano) — Indica si se deben publicar inicialmente los subtítulos de la retransmisión (valor por defecto: false). Esta configuración se aplica cuando se pasa el objeto Publisher en una llamada a la Session.publish() método. Esta propiedad no tendrá ningún efecto si no se han habilitado los subtítulos a nivel de sesión. Para obtener más información, consulta el Subtítulos en directo Guía para desarrolladores. - publishSenderStats (Booleano) — Indica si se debe habilitar un canal de estadísticas del remitente para el flujo (por defecto: false). Esta configuración se aplica cuando se pasa el objeto Publisher en una llamada a la Session.publish() método. - resolución (Cadena) — La resolución deseada del vídeo. El formato de la cadena es "widthxheight", donde la anchura y la altura se expresan en píxeles. Los valores válidos son "1920x1080", "1280x720", "640x480", y "320x240". El vídeo publicado solo utilizará la resolución deseada si la configuración del cliente la admite. Algunos navegadores y clientes no admiten todas estas opciones de resolución. La resolución solicitada de una transmisión de vídeo se establece como la videoDimensions.width y videoDimensions.height propiedades del objeto Stream. Si no se especifica una resolución, el navegador utiliza la resolución predeterminada de la cámara. La mayoría de las cámaras físicas tienen una resolución predeterminada de 640x480, pero otras cámaras, en particular las cámaras virtuales, tienen resoluciones predeterminadas diferentes. Si el sistema cliente no es compatible con la resolución solicitada, la transmisión utilizará la siguiente configuración más alta compatible. La resolución real utilizada por el Publisher se devuelve mediante el videoHeight() y videoWidth() métodos del objeto Publisher. La resolución real de una transmisión de vídeo del Suscriptor la devuelve el videoHeight() y videoWidth() propiedades del objeto «Subscriber». Estas pueden diferir de los valores del resolution propiedad pasada como properties propiedad de la OT.initPublisher() método: si el navegador no admite la resolución solicitada, este valor se ignora. Además, si la fuente de vídeo es un objeto `MediaStreamTrack` (véase el videoSource), este valor se ignora y la resolución viene definida por el objeto `MediaStreamTrack`, al que se puede acceder llamando a la función getConstraints() método del objeto MediaStreamTrack. - scalableScreenshare (Booleano) — Si se permite el uso de vídeo escalable para una editorial que cuenta con el videoSource ajustado a "screen" (true) o no (false, el valor por defecto). - scalableVideo (Booleano) — Si se permite (true, el valor predeterminado) o desactivar (false) vídeo escalable para el editor. Esto solo se aplica en una sesión enrutada (una que utilice el Enrutador multimedia de la Video API de Vonage). Nota: De forma predeterminada, el vídeo escalable está desactivado en los vídeos de pantalla compartida. Puedes configurar el scalableScreenshare opción de true para habilitar el vídeo escalable en las transmisiones de pantalla compartida. Sin embargo, la configuración scalableVideo a false desactiva el vídeo escalable para cualquier fuente de vídeo (y el scalableScreenshare (esta configuración se ignora en las transmisiones de pantalla compartida). - mostrar controles (Booleano) — Indica si se deben mostrar los controles integrados de la interfaz de usuario (por defecto: true) para el Publisher. Estos controles incluyen la visualización del nombre, el indicador de nivel de audio y el botón de control del micrófono. Puedes desactivar todos los controles de la interfaz de usuario estableciendo esta propiedad en false. Puedes controlar la visualización de los controles individuales de la interfaz de usuario dejando esta propiedad configurada en true (el valor por defecto) y configurando las propiedades individuales del style propiedad. - estilo (Objeto) — Un objeto que contiene propiedades que definen el aspecto inicial de los controles de la interfaz de usuario del Publisher. El style El objeto incluye las siguientes propiedades: - audioLevelDisplayMode (Cadena) — Cómo mostrar el indicador de nivel de audio. Los valores posibles son: "auto" (el indicador aparece cuando el vídeo está desactivado), "off" (el indicador no se muestra), y "on" (el indicador siempre está visible). - archiveStatusDisplayMode (Cadena) — Cómo mostrar el indicador de estado del archivo. Los valores posibles son: "auto" (el indicador aparece cuando se está grabando la sesión), "off" (el indicador no se muestra). Si desactiva el indicador de visualización del estado de archivo, podrá mostrar sus propias notificaciones en la interfaz de usuario basadas en el archiveStarted y archiveStopped eventos emitidos por el objeto Session. - backgroundImageURI (Cadena) — Un URI de una imagen que se mostrará como imagen de fondo cuando no se reproduzca ningún vídeo. (Es posible que no se reproduzca ningún vídeo si se llama a publishVideo(false) en el objeto Publisher). Puedes pasar una URI http o https que apunte a la ubicación de un archivo PNG, JPEG o GIF no animado. También puedes utilizar el data Esquema URI (en lugar de http o https) y pasar datos PNG cifrados en base-64, como los obtenidos de la Publisher.getImgData() método. (Por ejemplo, podrías establecer la propiedad con un valor devuelto al llamar a getImgData() en un objeto Publisher anterior.) Si la URL o los datos de la imagen no son válidos, la propiedad se ignora (el intento de establecer la imagen falla sin mostrar ningún mensaje). - buttonDisplayMode (Cadena) — Cómo mostrar los controles del micrófono Los valores posibles son: "auto" (los controles se muestran cuando se visualiza la transmisión por primera vez y cuando el usuario pasa el ratón por encima de la pantalla), "off" (los controles no se muestran), y "on" (los controles siempre están visibles). - nameDisplayMode (Cadena) — Indica si se debe mostrar el nombre de la transmisión. Los valores posibles son: "auto" (el nombre aparece cuando se muestra la transmisión por primera vez y cuando el usuario pasa el ratón por encima de la pantalla), "off" (el nombre no aparece), y "on" (el nombre siempre aparece). - videoDisabledDisplayMode (Cadena) — Indica si se deben mostrar el indicador de vídeo desactivado y los iconos de advertencia de vídeo desactivado para el objeto Publisher. Estos iconos indican que el vídeo se ha desactivado (o que corre el riesgo de desactivarse, en el caso del icono de advertencia) debido a la mala calidad de la transmisión. Este estilo solo se aplica al objeto Publisher. Los valores posibles son: "auto" (los iconos aparecen automáticamente cuando el vídeo que se está reproduciendo se desactiva o corre el riesgo de desactivarse debido a una mala calidad de la transmisión), "off" (no mostrar los iconos), y "on" (mostrar los iconos). La configuración predeterminada es "auto". - videoContentHint (Cadena) — Establece la sugerencia de contenido de la pista de vídeo de la transmisión del editor. Esto permite a los navegadores utilizar métodos de codificación o procesamiento más adecuados para el tipo de contenido. Se puede establecer en uno de los siguientes valores: - "" — No se proporciona ninguna pista (opción predeterminada). - "motion" — La pista debe tratarse como si contuviera vídeo, en los casos en que el movimiento sea importante. Por ejemplo, puedes utilizar esta configuración para una transmisión de pantalla compartida que contenga vídeo. - "detail" — La pista debe tratarse como si los detalles del vídeo fueran especialmente importantes. Por ejemplo, puedes utilizar esta configuración para una transmisión de pantalla compartida que contenga texto, dibujos o ilustraciones lineales. - "text" — La pista debe tratarse como si los detalles del texto fueran especialmente importantes. Por ejemplo, puedes utilizar esta configuración para una transmisión de pantalla compartida que contenga contenido de texto. Con las indicaciones de contenido «text» y «detailed», el navegador intenta mantener una alta resolución, incluso si para ello tiene que reducir la velocidad de fotogramas del vídeo. En el caso de la indicación de contenido «motion», el navegador reduce la resolución para evitar que la velocidad de fotogramas se ralentice. Puedes obtener más información sobre estas opciones en el Borrador de trabajo del W3C. Quizás te interese configurar la sugerencia de contenido de vídeo para optimizar el rendimiento de los vídeos compartidos en pantalla. Por ejemplo, puedes configurarla para que "text" al compartir una pantalla que contenga mucho texto (como una presentación de diapositivas). Chrome 60 y versiones posteriores, Safari 12.1 y versiones posteriores, Edge 79 y versiones posteriores, Opera 47 y versiones posteriores, las versiones recientes de Samsung Internet, WebView en Android 70 y versiones posteriores, y WebView en iOS 12.2 y versiones posteriores admiten indicaciones de contenido de vídeo. Consulta también el Publisher.setVideoContentHint() método y el Tema de la guía para desarrolladores sobre esta función. - videoFilter (Objeto) — Un objeto que contiene las propiedades que definen el filtro de vídeo que se aplicará a la transmisión de vídeo del editor. Se admiten los siguientes filtros: - Filtro de desenfoque de fondo - Fije el type propiedad del objeto a "backgroundBlur". Un objeto de filtro de desenfoque de fondo incluye un blurStrength propiedad, que define el radio de desenfoque y es opcional. Establece este valor en "low" o "high" (por defecto). - Filtro de sustitución de fondo - Fije el type propiedad del objeto a "backgroundReplacement". Un objeto de filtro de sustitución de fondo incluye un backgroundImgUrl propiedad, que define la URL de la imagen de fondo que se va a utilizar. También se aceptan BLOB de imagen (una cadena de datos de imagen codificada en Base64). Se admiten los siguientes formatos de imagen: BMP, PNG, JPEG y GIF. La imagen de fondo se redimensiona para ajustarse a las dimensiones del vídeo del editor. Para obtener los mejores resultados, utiliza una imagen que tenga las mismas dimensiones (o al menos la misma relación de aspecto) que el vídeo publicado. Establece el mirror opción de false al llamar a la OT.initPublisher() Método para que la imagen de fondo aparezca con la orientación correcta (sin reflejar) en la página del editor.Nota: Los filtros de vídeo solo son compatibles con las versiones recientes de Chrome, Firefox, Electron, Opera, Edge, Samsung Internet, WebView para Android y las últimas versiones de Safari (versión 26+) y WebView para iOS (versión 26+). Puedes comprobar si el cliente es compatible con esta función llamando a la función OT.hasMediaProcessorSupport('video') método. Puedes cambiar el filtro de vídeo llamando al Publisher.applyVideoFilter() método. Puedes eliminar el filtro de vídeo llamando al Publisher.clearVideoFilter() método. - fuente del vídeo (String, MediaStreamTrack, Boolean o null) — El identificador del dispositivo de entrada de vídeo (como una cámara) que utilizará el editor. Se puede obtener una lista de los dispositivos disponibles, incluidos los dispositivos de entrada de vídeo, llamando a la función OT.getDevices() método. Cada dispositivo que aparece en la lista del método tiene un identificador de dispositivo único. Si se pasa un identificador de dispositivo que no coincide con ningún dispositivo de entrada de vídeo existente, la llamada a OT.initPublisher() da error (código de error 1500, «No se puede publicar») que se pasa a la función del controlador de finalización. Si estableces esta propiedad en null o false, el navegador no solicita acceso a la cámara y no se publica ningún vídeo. En una llamada solo de voz, configura esta propiedad en null o false para cada editor. Para publicar una transmisión compartida de pantalla, configura esta propiedad en "screen". En versiones anteriores del navegador, también se podía pasar "application" o "window" para especificar un tipo de fuente de pantalla compartida. Sin embargo, en los navegadores actuales que admiten la función de pantalla compartida, al introducir cualquiera de estos valores se obtiene el mismo comportamiento: el navegador muestra un cuadro de diálogo en el que el usuario final selecciona la fuente de pantalla compartida (que puede ser toda la pantalla o una ventana concreta). En Electron, la función de compartir pantalla captura toda la pantalla, sin solicitar permiso al usuario. Para las transmisiones de pantalla compartida, estos son los valores predeterminados de otras propiedades: audioFallbackEnabled == false, maxResolution == {width: 1920, height: 1920}, mirror == false, scaleMode == "fit". Además, el valor por defecto scaleMode La configuración para los suscriptores de la transmisión es "fit". En Safari, al inicializar un emisor de pantalla compartida sin un controlador de gestos de usuario, puede producirse un InvalidAccessError error. También puedes establecer esta propiedad en un vídeo MediaStreamTrack objeto. Esto te permite utilizar el objeto `MediaStreamTrack` como fuente de vídeo para la transmisión publicada. Por ejemplo, puedes obtener un objeto `CanvasCaptureMediaStream` llamando a la función captureStream() método de un HTMLCanvasElement, y a continuación puedes llamar al getVideoTracks() método del objeto `CanvasCaptureMediaStream` para obtener un objeto `MediaStreamTrack` de vídeo. O bien, puedes obtener una matriz de objetos `MediaStreamTrack` de vídeo a partir del videoTracks propiedad de un objeto HTMLMediaElement. O bien, puedes llamar a la getLocalStreams() o getRemoteStreams() método de un objeto `RTCPeerConnection` para obtener una matriz de objetos `MediaStream` y, a continuación, llamar al getVideoTracks() método de uno de los objetos MediaStream para obtener una matriz de objetos MediaStreamTrack de vídeo. Ten en cuenta que, por defecto, el editor utiliza un micrófono como fuente de audio, así que asegúrate de configurar el audioSource opción si quieres utilizar un MediaStreamTrack como fuente de audio o si no quieres publicar una pista de audio. El valor por defecto mirror La configuración para un Publisher con una fuente de vídeo MediaStreamTrack es false. También puedes llamar al OT.getUserMedia() para obtener un objeto MediaStream que utilice el micrófono y la cámara como fuentes de audio y vídeo. - anchura (Número o cadena) — El ancho inicial deseado del vídeo de Publisher que se muestra en la página HTML (por defecto: 264 píxeles). Puede especificar el número de píxeles como un número (por ejemplo, 400) o como una cadena que termine en «px» (por ejemplo, «400px»). También puede especificar un porcentaje del tamaño del elemento padre, mediante una cadena que termine en «%» (por ejemplo, «100%»). Nota: Para cambiar el tamaño del vídeo del editor, ajusta el CSS del elemento DOM del editor (el element propiedad del objeto Publisher) o (si el ancho se especifica como un porcentaje) su elemento DOM padre (véase Cambiar el tamaño o la posición de un vídeo). |
completionHandler |
función | (Opcional) Una función que se invocará cuando el método consiga o no inicializar un objeto Publisher. Esta función toma un parámetro: error. Si se realiza correctamente, el error El objeto está establecido en null. En caso de fallo, el error El objeto tiene dos propiedades: code (un número entero) y message (una cadena), que identifica la causa del error. El método se ejecuta correctamente cuando el usuario concede acceso a la cámara y al micrófono. El método falla si el usuario deniega el acceso a la cámara y al micrófono. El completionHandler La función se invoca antes de que el Publisher envíe un accessAllowed evento (de éxito) o un accessDenied (error). El siguiente código añade un completionHandler al llamar a la OT.initPublisher() método: var publisher = OT.initPublisher('publisher', null, function (error) { if (error) { console.log(error); } else { console.log("Publisher initialized."); } }); |
Véase: : - Session.publish()
Devoluciones:
El objeto Publisher.
(estático) initSession(apiKey, sessionId, options) → {Sesión}
Inicializa y devuelve el objeto de sesión local correspondiente a un ID de sesión específico.
Para conectarte a una sesión de la Video API de Vonage, utiliza el connect() método
del objeto Session devuelto por el OT.initSession() método.
Ten en cuenta que al llamar a OT.initSession() No inicia ninguna comunicación
con la nube. Simplemente inicializa el objeto «Session», que puedes utilizar para
conectarte (y para realizar otras operaciones una vez conectado).
Ten en cuenta que solo se puede inicializar un objeto `Session` por cada ID de sesión. Al llamar a
OT.initSession() Si se realiza por segunda vez con el mismo ID de sesión, devuelve el
objeto Session creado anteriormente. Sin embargo, puedes inicializar varios objetos Session
para diferentes sesiones (con diferentes ID de sesión) con el fin de conectarte a varias sesiones.
Cuando el cliente se desconecta de la sesión (y la sesión envía un
sessionDisconnected evento), puedes reutilizar el objeto Session para
volver a conectarte a la sesión. Sin embargo, el objeto Session conservará cualquier
manejador de eventos existente que tenga asociado. Puedes eliminar todos los manejadores de eventos llamando a la función
off() método del objeto Session (sin pasar ningún parámetro).
Para ver un ejemplo, consulta Session.connect().
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
apiKey |
Cadena | Tu clave de la Video API de Vonage (consulta tu Página de cuenta de Video API de Vonage). |
sessionId |
Cadena | El ID de sesión que identifica la sesión de la Video API de Vonage. Para obtener más información, consulta Creación de una sesión. |
options |
Objeto | Un objeto que incluye opciones opcionales para inicializar la sesión. Este objeto incluye las siguientes propiedades: - connectionEventsSuppressed — (Booleano) Establece esta propiedad en true para admitir sesiones de vídeo interactivas de gran tamaño. Esto evita que el objeto «Session» envíe connectionCreated y connectionDestroyed eventos cuando otros clientes se conectan o se desconectan de la sesión. (Además, el servidor de la Video API de Vonage no envía estos eventos al cliente web.) Para obtener más información, consulta Supresión de eventos de conexión en las guías para desarrolladores de la Video API de Vonage. - ipWhitelist — (Booleano) Está disponible como un funcionalidad adicional. Configúralo en true si la lista blanca de direcciones IP está activada para tu proyecto. El valor por defecto es false. - iceConfig — (Objeto) Este objeto incluye las siguientes propiedades: - includeServers (Cadena) - Establézcalo como 'custom' y el cliente utilizará únicamente los servidores TURN personalizados que usted proporcione en el customServers matriz. Establece este valor en 'all' (por defecto) y el cliente utilizará tanto los servidores TURN personalizados que facilites como los servidores TURN de OpenTok. - transportPolicy (Cadena) - Establézcalo como 'all' (valor predeterminado) y el cliente utilizará todos los tipos de transporte ICE (como host, srflx y TURN) para establecer la conectividad multimedia. Configúralo en 'relay' para forzar siempre la conectividad a través de TURN e ignorar todos los demás candidatos ICE. - customServers (Matriz) — Establece este valor como una matriz de objetos que definan tus servidores TURN personalizados. Cada objeto corresponde a un servidor TURN personalizado e incluye las siguientes propiedades: urls — una cadena o una matriz de cadenas, en la que cada cadena es una URL compatible con el servidor TURN (y puede tratarse de una sola URL); username — el nombre de usuario (cadena de caracteres) del servidor TURN definido en este objeto; credential — la cadena de credenciales del servidor TURN definido en este objeto. Esta función forma parte del TURN configurable funcionalidad adicional. Para obtener más información y ver un ejemplo de código, consulta el Servidores TURN configurables Guía para desarrolladores. - encryptionSecret — (Cadena) Se trata del secreto de cifrado inicial que utiliza la función de cifrado de extremo a extremo. Véase la guía para desarrolladores. - singlePeerConnection — (Booleano) Activa la Conexión con un único par Función (SPC). El valor predeterminado es false (SPC está desactivado). - sessionMigration — (Booleano) Activa la función de migración de sesiones, lo que permite que el cliente permanezca conectado durante la rotación de servidores. El valor por defecto es false (la migración de sesiones no está habilitada). Para obtener más información, consulta Rotación de servidores y migración de sesiones. |
Devoluciones:
El objeto de sesión a través del cual se llevarán a cabo todas las interacciones posteriores con la sesión.
(estático) log(mensaje)
Envía una cadena a la consola del depurador. Sin embargo, la función solo registra la información en la consola
si has configurado el nivel de registro en OT.LOG o OT.DEBUG,
llamando al OT.setLogLevel(OT.LOG) o OT.setLogLevel(OT.DEBUG).
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
message |
Cadena | La cadena que se va a registrar. |
Véase: : - OT.setLogLevel()
(estático) off(tipo, controlador, contexto)
Elimina un controlador de eventos.
Si se pasan un nombre de evento y un método de gestión, se elimina el método de gestión para ese evento:
OT.off("exceptionEvent", exceptionEventHandler);
Si pasas un nombre de evento y no método «handler»: se eliminan todos los controladores de esos eventos:
OT.off("exceptionEvent");
El método también admite una sintaxis alternativa, en la que el primer parámetro es un objeto que constituye un mapa hash de nombres de eventos y funciones de gestión, y el segundo parámetro (opcional) es el contexto para la selección de las funciones de gestión:
OT.off(
{
exceptionEvent: exceptionEventHandler
},
this
);
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
type |
Cadena | (Opcional) La cadena que identifica el tipo de evento. Puedes utilizar un espacio para especificar varios eventos, como en «nombreEvento1 nombreEvento2 nombreEvento3». Si no pasas ningún type valor (u otros argumentos), se eliminan todos los controladores de eventos del objeto. |
handler |
función | (Opcional) La función de gestión de eventos que se va a eliminar. Si no se pasa ningún handler, se eliminan todos los controladores de eventos para el evento especificado type. |
context |
Objeto | (Opcional) Si especificas un context, se elimina el controlador de eventos para todos los eventos especificados y para todos los controladores que utilicen el contexto especificado. |
Véase: : - on() - una vez() - Eventos
(estático) on(tipo, controlador, contexto)
Añade una función de gestión de eventos para uno o varios eventos.
El objeto OT genera un tipo de evento: un exception evento. El siguiente
código añade un
escuchador de eventos para el exception evento:
OT.on("exception", function (event) {
// This is the event handler.
});
También puedes pasar un tercer context parámetro (que es opcional) para definir el
valor de
this en el método del controlador:
OT.on("exception",
function (event) {
// This is the event handler.
}),
session
);
Si no se añade un controlador para un evento, este se ignora a nivel local.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
type |
Cadena | La cadena que identifica el tipo de evento. |
handler |
función | La función de gestión encargada de procesar el evento. Esta función toma el objeto del evento como parámetro. |
context |
Objeto | (Opcional) Define el valor de this en la función del controlador de eventos. |
Véase: : - off() - una vez() - Eventos
(estático) once(tipo, controlador, contexto)
Añade una función de gestión de eventos para un evento. Una vez que se invoca el gestor, el método de gestión especificado
se
elimina como gestor de este evento. (Cuando se utiliza el OT.on() Método para añadir un controlador
de eventos; el controlador
es no se elimina cuando se invoca.) El OT.once() El método es equivalente a
llamar a la OT.on()
método y llamada OT.off() la primera vez que se invoca el controlador.
El siguiente código añade un controlador de eventos de una sola vez para el exception evento:
OT.once("exception", function (event) {
console.log(event);
}
También puedes pasar un tercer context parámetro (que es opcional) para definir el
valor de
this en el método del controlador:
OT.once("exception",
function (event) {
// This is the event handler.
},
session
);
El método también admite una sintaxis alternativa, en la que el primer parámetro es un objeto que constituye un mapa hash de nombres de eventos y funciones de gestión, y el segundo parámetro (opcional) es el contexto para este objeto en cada función de gestión:
OT.once(
{exeption: function (event) {
// This is the event handler.
}
},
session
);
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
type |
Cadena | La cadena que identifica el tipo de evento. En esta cadena puedes especificar varios nombres de eventos, separándolos con un espacio. El controlador de eventos procesará la primera aparición de dichos eventos. Tras el primer evento, el controlador se elimina (para todos los eventos especificados). |
handler |
función | La función de gestión encargada de procesar el evento. Esta función toma el objeto del evento como parámetro. |
context |
Objeto | (Opcional) Define el valor de this en la función del controlador de eventos. |
Véase: : - on() - una vez() - Eventos
(estática) registerScreenSharingExtension(tipo, id, versión)
Registra una extensión para que la función de compartir pantalla sea compatible con versiones anteriores de Chrome u Opera.
Nota: No es necesaria una extensión para compartir pantalla en Chrome 72 o superior ni en Opera 59 o superior. Se solicita al usuario final que conceda acceso a la pantalla, igual que se le pediría al conceder acceso a una cámara. Solo necesitas una extensión para compartir pantalla en versiones anteriores de Opera y Chrome.
Utiliza el OT.checkScreenSharingCapability() método para comprobar si una extensión es
obligatoria, está registrada e instalada.
La Video API de Vonage extensiones para compartir pantalla El repositorio incluye código para crear una extensión que permita compartir la pantalla.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
kind |
Cadena | Establece este parámetro en "chrome". Actualmente, solo se puede registrar una extensión para compartir pantalla en versiones anteriores de Chrome y Opera. |
id |
Cadena | El ID de tu extensión para compartir pantalla. Puedes encontrar este ID en chrome://extensions. |
version |
Numbers | La versión de la extensión para compartir pantalla de la extensiones para compartir pantalla repo. Configura este valor si utilizas la versión 2 o posterior. Por ejemplo, si utilizas la versión 2, configúralo en 2. Con la versión 2, el cliente puede utilizar la extensión inmediatamente después de instalarla, sin necesidad de recargar la página. |
Véase: : - OT.initPublisher() - OT.checkScreenSharingCapability()
(estático) removeEventListener(tipo, oyente)
Este método está obsoleto. Utiliza off() en su lugar.
Elimina un detector de eventos para un evento concreto.
Lanza una excepción si el listener El nombre no es válido.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
type |
Cadena | La cadena que identifica el tipo de evento. |
listener |
función | La función de escucha de eventos que hay que eliminar. |
Véase: : - off()
(estático) reportIssue(completionHandler) → {Promise.<string>}
Informa de que tu aplicación ha tenido un problema. Puedes utilizar el ID del problema con Inspector o al tratar un asunto con el equipo de asistencia técnica de la API de Vonage.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
completionHandler |
función | Función opcional que se ejecuta cuando la llamada a este método se realiza con éxito o falla. Esta función tiene dos parámetros. El primer parámetro es un Error objeto que se establece al llamar a la función reportIssue() el método falla (por ejemplo, si el cliente no está conectado a la red) o null cuando se realiza la llamada a la reportIssue() El método se ejecuta correctamente. El segundo parámetro se establece en el ID del informe (una cadena única) cuando la llamada se ejecuta correctamente. |
Devoluciones:
Una promesa vinculada al ID del informe
(estático) setAudioOutputDevice() → {Promise}
Establece el nuevo dispositivo de salida de audio.
El método devuelve una Promise que se resuelve cuando la operación finaliza con éxito. Si se produce un error, la Promise se rechaza.
Nota: Actualmente, es compatible con las versiones de escritorio de Chrome 49 o superior, Firefox 116 o superior, Edge 17 o superior, Opera 36 o superior, Safari 26 o superior y WebView en iOS 26 o superior.
Véase: : - OT.getAudioOutputDevices() - OT.getActiveAudioOutputDevice()
Devoluciones:
Una promesa que se resuelve cuando la operación se completa con éxito. Si se produce un error, la promesa se rechaza.
(estático) setLogLevel(logLevel)
Establece el nivel de registro de la API.
Llamando a OT.setLogLevel() establece el nivel de registro de los mensajes de registro en tiempo de ejecución que
genera la biblioteca de la Video API de Vonage. El valor predeterminado del nivel de registro es
OT.ERROR.
La biblioteca JavaScript de la Video API de Vonage muestra mensajes de registro en la consola del depurador (como Firebug), si hay alguna disponible.
En el siguiente ejemplo se muestra el ID de sesión en la consola, llamando a OT.log().
El código también registra un mensaje de error cuando intenta publicar un flujo antes de que te hayas
conectado a la sesión (al llamar a Session.connect()).
OT.setLogLevel(OT.LOG);
session = OT.initSession(sessionId);
OT.log(sessionId);
publisher = OT.initPublisher("publishContainer");
session.publish(publisher);
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
logLevel |
Numbers | El nivel de registro que desea el promotor: - OT.NONE — El registro de la API está desactivado. - OT.ERROR — Solo registro de errores. - OT.WARN — Registro de advertencias y errores. - OT.INFO — Registro de otra información útil, además de las advertencias y los errores. - OT.LOG — Registro de OT.log() mensajes, además de los mensajes de información, advertencia y error de la Video API de Vonage. - OT.DEBUG — Registro detallado de todas las acciones de la API, así como OT.log() mensajes. |
Véase: : - OT.log()
(estático) setProxyUrl()
Establece la URL del servidor proxy IP. Con la función de proxy IP, el cliente desvía todo el tráfico de Internet (excepto las transmisiones multimedia) a través de tu servidor proxy.
Debes llamar a este método antes de llamar a cualquier otro método de la Video API de Vonage.
Esto garantiza que se utilice el servidor proxy para el tráfico de la Video API de Vonage. De lo contrario,
la llamada falla y el OT El objeto envía un
exception evento. En OT El objeto también envía un
exception incluso si llamas a este método después de haberlo
llamado anteriormente.
Esta función está disponible como complemento. Para obtener más información, consulta el Guía para desarrolladores de proxies IP.
(estático) unblockAudio()
Hace que el audio de los suscriptores se reproduzca en los navegadores en los que el audio está bloqueado.
Debes llamar a este método en respuesta a un elemento HTML que envíe
un click evento.
Solo tienes que llamar a este método si desactivas la visualización
del icono predeterminado de reproducción de audio del suscriptor (configurando el
style.audioBlockedDisplayMode propiedad del
options del
Session.subscribe() método).
Puedes llamar a este método cuando el usuario haga clic en un elemento HTML
que muestres en la página.
El suscriptor envía un
audioBloqueado evento
si se bloquea el audio. En respuesta a ese evento, puedes mostrar un elemento de la interfaz de usuario
para notificar al usuario final que responda al audio del suscriptor de reproducción.
Llama a la función OT.unblockAudio() método que se ejecuta cuando el usuario
hace clic en un elemento DOM.
Nota: El audio del suscriptor también se desbloquea automáticamente si
el cliente local obtiene acceso a la cámara o al micrófono (por ejemplo,
en respuesta a una llamada realizada con éxito a OT.initPublisher()).
Véase: : - Subscriber.isAudioBlocked() - El audioBloqueado y audio sin restricciones Eventos para suscriptores
Devoluciones:
Promesa: La promesa se resuelve si la reproducción de audio se realiza correctamente en todos los suscriptores bloqueados. La promesa se rechaza si la reproducción falla. Véase Error Para más información.
(estática) upgradeSystemRequirements()
Muestra información sobre los requisitos del sistema para la Video API de Vonage para WebRTC. Esta información se muestra en un elemento iframe que ocupa toda la ventana del navegador.
Nota: Esta información se muestra automáticamente al llamar a la
OT.initSession() o el OT.initPublisher() método
si el cliente no es compatible con la Video API de Vonage para WebRTC.
Nota: Esta función quedará obsoleta en el futuro.
Véase: : - OT.checkSystemRequirements()
Eventos
excepción
Lo envía la clase OT cuando la aplicación detecta una excepción.
Ten en cuenta que debes configurar un controlador de eventos para el exception evento llamando a la función
OT.on() método.
Véase: : - ExceptionEvent