El objeto Publisher proporciona el mecanismo mediante el cual se lleva a cabo el control del flujo publicado. Al llamar a la función OT.initPublisher() método crea un objeto Publisher.

El siguiente código crea una instancia de una sesión y publica un flujo de audio y vídeo al conectarse a la sesión:

 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);
   }
 });

En este ejemplo se crea un objeto Publisher y se añade su vídeo a un elemento DOM con el ID publisherElement llamando al OT.initPublisher() método. A continuación, publica un flujo en la sesión llamando al publish() método del objeto Session.

Propiedades

Nombre Tipo Descripción
accessAllowed Booleano Si el usuario ha concedido acceso a la cámara y al micrófono. El objeto Publisher envía un accessAllowed evento cuando el usuario concede el acceso. El objeto Publisher envía un accessDenied evento que se produce cuando el usuario deniega el acceso.
element Elemento El elemento DOM HTML que contiene el Publisher. (Nota: cuando configures el insertDefaultUI opción de false en la llamada a OT.initPublisherEl element la propiedad no está definida.)
id Cadena El identificador DOM del editor.
stream Transmisión El Transmisión objeto correspondiente al flujo del editor.
session Sesión El Sesión a la que pertenece la editorial.

Véase: : - OT.initPublisher - Session.publish()

Métodos

Nombre Descripción
addEventListener(type, listener, context) En desuso.
applyAudioFilter(audioFilter) → {Promise} Aplica un filtro de audio para el editor.
applyVideoFilter(videoFilter) → {Promise} Aplica un filtro de vídeo para el editor.
clearAudioFilter() → {Promise} Elimina el filtro de audio aplicado al editor.
clearVideoFilter() → {Promise} Elimina el filtro de vídeo aplicado al editor.
cycleVideo() → {Promise} Cambia la fuente de entrada de vídeo que utiliza el presentador por la siguiente de la lista de dispositivos disponibles.
destroy() → {Publisher} Elimina el objeto Publisher y lo retira del DOM HTML.
getAudioFilter() → {Object} Devuelve el filtro de audio utilizado por el editor (o «null» si no hay ningún filtro de audio).
getAudioSource() → {MediaStreamTrack} Devuelve el objeto `MediaStreamTrack` utilizado como fuente de entrada de audio para el editor.
getImgData() → {String} Devuelve la cadena de datos PNG codificada en base 64 que representa el vídeo de Publisher.
getMaxVideoBitrate() → {Integer} Devuelve la tasa de bits máxima personalizada establecida para el Publisher.
getRtcStatsReport() → {Promise} Devuelve una promesa que, en caso de éxito, se resuelve con un array de objetos que incluyen las propiedades de RTCStatsReport correspondientes a la transmisión publicada.
getStats(completionHandler) → {Promise.<PublisherStatsArr>} Devuelve los detalles sobre la calidad de la transmisión del emisor, incluyendo lo siguiente: - El número total de paquetes de audio y vídeo perdidos - El número total de paquetes de audio y vídeo enviados - El número total de bytes de audio y vídeo enviados - La frecuencia de fotogramas de vídeo media actual. Puedes utilizar estas estadísticas para evaluar la calidad de la transmisión de audio y vídeo del emisor.
getStyle() → {Object} Devuelve un objeto que contiene las propiedades que definen los controles actuales de la interfaz de usuario del Publisher.
`getTargetScalabilityMode() → {String undefined}` Devuelve el modo de escalabilidad de destino que se ha establecido explícitamente mediante Editorial.
getVideoBitratePreset() → {String} Devuelve el valor preestablecido de la tasa de bits para el Publisher.
getVideoContentHint() → {String} Devuelve la sugerencia de contenido de la pista de vídeo.
getVideoFilter() → {Object} Devuelve el filtro de vídeo aplicado por el editor.
getVideoSource() → {VideoSource} Devuelve un objeto que contiene las propiedades que definen la fuente de vídeo actual del editor.
off(type, handler, context) → {Object} Elimina uno o varios controladores de eventos.
on(type, handler, context) → {EventDispatcher} Añade una función de gestión de eventos para uno o varios eventos.
once(type, handler, context) → {Object} Añade una función de gestión de eventos para uno o varios eventos.
publishAudio(value) → {Publisher} Comienza a publicar el audio (si aún no se está publicando) cuando el value es true; deja de publicar el audio (si se está publicando en ese momento) cuando el value es false.
publishCaptions(value) → {Promise.<void>} Comienza a publicar subtítulos (si aún no se están publicando) cuando el value es true; deja de publicar leyendas (si se están publicando en ese momento) cuando el value es false.
publishVideo(value, callback) → {Publisher} Activa o desactiva el vídeo para el editor.
removeEventListener(type, listener, context) En desuso.
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise} Establece un MediaProcessorConnector para la pista de audio del editor.
setAudioSource(audioSource) → {Promise} Cambia la fuente de entrada de audio que utiliza el editor.
setMaxVideoBitrate(bitrateBps) Establece una tasa de bits máxima personalizada para el editor.
setPreferredFrameRate(frameRate) → {Promise} Establece la frecuencia de fotogramas de vídeo preferida.
setPreferredResolution(preferredResolution) → {Promise} Establece la resolución de vídeo preferida.
setStyle(style, value) → {Publisher} Establece las propiedades que definen el aspecto de algunos controles de la interfaz de usuario del Publisher.
setTargetScalabilityMode(scalabilityMode) Establece el modo de escalabilidad deseado (SVC: codificación de vídeo escalable) para este editor.
setVideoBitratePreset(preset) Establece la tasa de bits máxima de vídeo para el editor en uno de los siguientes ajustes predefinidos: «default», «bw_saver» o «extra_bw_saver».
setVideoContentHint(videoContentHint) → {Promise.<void>} Establece la sugerencia de contenido para la pista de vídeo de la transmisión del editor.
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise} Establece un MediaProcessorConnector para la pista de vídeo del editor.
setVideoSource(videoSourceId) → {Promise} Este método establece la fuente de vídeo para un editor que utiliza una cámara.
videoHeight() → {Number} Devuelve la altura, en píxeles, del vídeo local del editor, leída desde el archivo local <video> elemento.
videoWidth() → {Number} Devuelve la anchura, en píxeles, del vídeo local del editor, leída desde el archivo local <video> elemento.

addEventListener(tipo, oyente, contexto)

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 dispache el evento.
context Objeto (Opcional) Define el valor de this en la función del controlador de eventos.

En desuso — uso on() o una vez() en su lugar.

Este método registra un método como detector de eventos para un evento concreto.

Si no hay ningún controlador registrado para un evento, dicho evento se ignora a nivel local. Si la función de escucha de eventos no existe, el evento se ignora a nivel local.

Lanza una excepción si el listener El nombre no es válido.

Véase: : - on() - una vez() - Eventos

applyAudioFilter(audioFilter) → {Promise}

Aplica un filtro de audio al editor. En la versión actual, solo se puede aplicar un filtro avanzado de supresión de ruido. A un editor solo se le puede aplicar un filtro (o ninguno) a la vez. Al configurar un nuevo filtro, se elimina cualquier filtro configurado anteriormente.

Este método es incompatible con el Publisher.setAudioMediaProcessorConnector() método. Al llamar a este método después de Publisher.setAudioMediaProccessorConnector(connector) devuelve una promesa que se rechaza con un error, con el name propiedad del error establecida en 'OT_NOT_SUPPORTED'. Puedes eliminar el conector llamando a Publisher.setAudioMediaProccessorConnector(null).

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 admite esta función llamando a la función OT.hasMediaProcessorSupport('audio') método.

Importante: Los filtros de audio requieren una compatibilidad adecuada con el procesador. Incluso en los navegadores compatibles, es posible que los transformadores no funcionen de forma estable cuando los procesos en segundo plano limiten los recursos de procesamiento disponibles. Véase Requisitos del cliente.

La llamada a este método da lugar a un error (la Promise devuelta por el método se rechaza) en las siguientes condiciones:

  • El navegador no admite este método.
  • Ya se está utilizando un filtro personalizado a través de la Publisher.setAudioMediaProcessorConnector() método.
  • Se ha producido un error al aplicar el filtro de transformación.

También puedes configurar el filtro de audio inicial estableciendo un audioFilter opción al llamar a OT.initPublisher().

Parámetros:
Nombre Tipo Descripción
audioFilter Objeto Un objeto que define el filtro de audio que se va a aplicar. Se admiten los siguientes filtros: - Filtro avanzado de supresión de ruido - Fije el type propiedad del objeto a "advancedNoiseSuppression".

Véase: : - OT.hasMediaProcessorSupport('audio') - Publisher.getAudioFilter() - Publisher.clearAudioFilter()

Devoluciones:

Una promesa que se resuelve cuando la operación finaliza con éxito. Si se produce un error, la promesa se rechaza y no se establece ningún nuevo filtro de vídeo.

applyVideoFilter(videoFilter) → {Promise}

Aplica un filtro de vídeo al editor. Puedes aplicar un filtro de desenfoque de fondo. A un editor solo se le puede aplicar uno (o ninguno) a la vez. Cuando configuras un nuevo filtro, se elimina el filtro configurado anteriormente.

Este método es incompatible con el Publisher.setVideoMediaProcessorConnector() método. Al llamar a este método después de Publisher.setVideoMediaProcessorConnector(connector) devuelve una promesa que se rechaza con un error, con el name propiedad del error establecida en 'OT_NOT_SUPPORTED'. Puedes eliminar el conector llamando a Publisher.setVideoMediaProcessorConnector(null).

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.

Importante: Los filtros de vídeo requieren una compatibilidad adecuada con el procesador. Incluso en los navegadores compatibles, es posible que los transformadores no funcionen de forma estable cuando los procesos en segundo plano limiten los recursos de procesamiento disponibles. Véase Requisitos del cliente.

La llamada a este método da lugar a un error (la Promise devuelta por el método se rechaza) en las siguientes condiciones:

  • El navegador no admite este método.
  • El reproductor no está utilizando una fuente de vídeo compatible. (El videoSource de la OT.initPublisher() El método se estableció en null, false, o "screen").
  • Ya se está utilizando un filtro personalizado a través de la Publisher.setVideoMediaProcessorConnector() método.
  • No hay ningún dispositivo de entrada de vídeo (cámaras) disponible.
  • Se ha producido un error al adquirir vídeo desde el dispositivo de entrada de vídeo.
  • Se ha producido un error al aplicar el filtro de transformación.

También puedes configurar el filtro de vídeo inicial estableciendo un videoFilter opción al llamar a OT.initPublisher().

Parámetros:
Nombre Tipo Descripción
videoFilter Objeto Un objeto que define el filtro de vídeo que se va a aplicar. 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 que se ajuste 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.

Véase: : - OT.hasMediaProcessorSupport('video') - Publisher.getVideoFilter() - Publisher.clearVideoFilter()

Devoluciones:

Una promesa que se resuelve cuando la operación finaliza con éxito. Si se produce un error, la promesa se rechaza y no se establece ningún nuevo filtro de vídeo.

clearAudioFilter() → {Promise}

Elimina el filtro de audio aplicado al editor.

Esto provocará un error (la Promise devuelta por el método se rechaza) si no se ha podido detener el filtro de audio.

Véase: : - OT.hasMediaProcessorSupport('audio') - Publisher.applyAudioFilter() - Publisher.getAudioFilter()

Devoluciones:

Una promesa que se resuelve cuando la operación se completa con éxito. Si se produce un error, la promesa se rechaza.

clearVideoFilter() → {Promise}

Elimina el filtro de vídeo aplicado al editor.

Esto provocará un error (la Promise devuelta por el método se rechaza) si no se ha podido detener el filtro de vídeo.

Véase: : - OT.hasMediaProcessorSupport('video') - Publisher.applyVideoFilter() - Publisher.getVideoFilter()

Devoluciones:

Una promesa que se resuelve cuando la operación se completa con éxito. Si se produce un error, la promesa se rechaza.

cycleVideo() → {Promise}

Cambia la fuente de entrada de vídeo utilizada por el emisor a la siguiente de la lista de dispositivos disponibles.

Esto provocará un error (la Promise devuelta por el método se rechaza) en las siguientes condiciones:

  • Se ha denegado al usuario el acceso al dispositivo de entrada de vídeo.
  • El editor no está utilizando una fuente de vídeo de cámara. (El videoSource de la OT.initPublisher() El método se estableció en null, false, un objeto MediaStreamTrack, o "screen").
  • No hay ningún dispositivo de entrada de vídeo (cámaras) disponible.
  • Se ha producido un error al adquirir vídeo desde el dispositivo de entrada de vídeo.

Véase: : - Publisher.setVideoSource()

Devoluciones:

Una promesa que se resuelve cuando la operación se completa con éxito. La promesa se resuelve con un objeto que contiene un deviceId con el ID del dispositivo de la cámara utilizada:

  publisher.cycleVideo().then(console.log);
  // Output: {deviceId: "967a86e52..."}

Si se produce un error, la promesa se rechaza.

destroy() → {Editorial}

Elimina el objeto Publisher y lo retira del DOM HTML.

El objeto Publisher envía un destroyed evento que se produce cuando se elimina el elemento del DOM.

Devoluciones:

La editorial.

getAudioFilter() → {Object}

Devuelve el filtro de audio utilizado por el editor (o «null» si no hay ningún filtro de audio).

Véase: : - OT.hasMediaProcessorSupport('audio') - Publisher.applyAudioFilter() - Publisher.clearAudioFilter()

Devoluciones:

El filtro de audio utilizado por la editorial. Comprueba el type propiedad del objeto para ver el tipo de filtro de audio. Actualmente, solo es compatible el filtro avanzado de supresión de ruido, y el type se establece en "advancedNoiseSuppression".

getAudioSource() → {MediaStreamTrack}

Devuelve el objeto `MediaStreamTrack` utilizado como fuente de entrada de audio para el editor. Si el editor no dispone de una fuente de audio, este método devuelve `null`.

Véase: : - Publisher.setAudioSource()

Devoluciones:

La fuente de audio de la editorial (o «null», si no hay ninguna).

getImgData() → {String}

Devuelve la cadena de datos PNG codificada en base 64 que representa el vídeo de Publisher.

Puedes utilizar la cadena como valor para un esquema de URL de datos que se pase al parámetro «src» de un archivo de imagen, tal y como se muestra a continuación:

 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);
Devoluciones:

La cadena codificada en base 64. Devuelve una cadena vacía si no hay ningún vídeo.

getMaxVideoBitrate() → {Integer}

Devuelve la tasa de bits máxima personalizada establecida para el Publisher.

Véase: : - Publisher.setMaxVideoBitrate() - Velocidad de bits máxima del editor

Devoluciones:

Uno de los siguientes valores: 0, o cualquier número entero comprendido entre 5.000 y 10.000.000.

getRtcStatsReport() → {Promise}

Devuelve una promesa que, en caso de éxito, se resuelve con un array de objetos que incluyen las propiedades RTCStatsReport de la transmisión publicada. (Véase Informe de estadísticas de RTC.)

Para un editor en una sesión enrutada (que utiliza la función Video API de Vonage Enrutador multimedia), este array incluye un objeto que define las estadísticas de la única corriente multimedia de audio que se envía al enrutador multimedia de la Video API de Vonage. En una sesión retransmitida, el array incluye un objeto por cada suscriptor de la corriente publicada. Cada objeto del array contiene un rtcStatsReport propiedad que es un objeto RTCStatsReport.

Además, en el caso de un editor en una sesión retransmitida, cada objeto de la matriz contiene las dos propiedades siguientes:

  • connectionId (Cadena) — El identificador único de la conexión del cliente, que coincide con el id propiedad del connection propiedad de la conexiónCreada en el caso de que el objeto «Session» se haya enviado al cliente remoto.
  • subscriberId (Cadena) — El identificador único del suscriptor, que coincide con el id propiedad del objeto «Subscriber» en la aplicación del cliente suscrito.

Estas dos propiedades no están definidas para un editor en una sesión enrutada.

La Promesa será rechazada en las siguientes condiciones:

Véase: : - Subscriber.getRtcStatsReport()

Devoluciones:

Una promesa que se resuelve cuando la operación se completa con éxito. Si se produce un error, la promesa se rechaza.

getStats(completionHandler) → {Promise.<PublisherStatsArr>}

Devuelve los detalles sobre la calidad de la transmisión del emisor, incluyendo lo siguiente:

  • Número total de paquetes de audio y vídeo perdidos
  • El número total de paquetes de audio y vídeo enviados
  • El número total de bytes de audio y vídeo enviados
  • La frecuencia de fotogramas media actual de los vídeos

Puedes utilizar estas estadísticas para evaluar la calidad de la transmisión de audio y vídeo del emisor.

Parámetros:
Nombre Tipo Descripción
completionHandler función (Opcional) Una función que admite los siguientes parámetros: - error (Error) — Una vez completado con éxito el método, este valor queda sin definir. Se produce un error si el emisor no está conectado a una sesión o si no está emitiendo audio o vídeo. - statsArray (Matriz) — Una matriz de objetos que define las estadísticas actuales de audio y vídeo del editor. En el caso de un editor que se encuentre en una sesión enrutada (una que utilice el Video API de Vonage Enrutador multimedia), este array incluye un objeto que define las estadísticas de la única secuencia multimedia de audio que se envía al enrutador multimedia de la Video API de Vonage. En una sesión retransmitida, el array incluye un objeto por cada suscriptor de la secuencia publicada. Cada objeto del array contiene un stats propiedad que incluye las siguientes propiedades: - audio.bytesSent (Número) — El número total de bytes de audio enviados al abonado (o al enrutador multimedia de la Video API de Vonage) - audio.packetsLost (Número) — Número total de paquetes de audio que no llegaron al abonado (o al enrutador multimedia de la Video API de Vonage) - audio.packetsSent (Número) — El número total de paquetes de audio enviados al abonado (o al enrutador multimedia de la Video API de Vonage) - timestamp (Número) — La marca de tiempo, en milisegundos desde la época Unix, en la que se recopilaron estas estadísticas - video.bytesSent (Número) — Total de bytes de vídeo enviados al abonado (o al enrutador multimedia de la Video API de Vonage) - video.packetsLost (Número) — El número total de paquetes de vídeo que no llegaron al abonado (o al enrutador multimedia de la Video API de Vonage) - video.packetsSent (Número) — El número total de paquetes de vídeo enviados al abonado - video.frameRate (Número) — La frecuencia media actual de fotogramas del vídeo. Esta propiedad está obsoleta y se eliminará en el futuro. En su lugar, utiliza la encodedFrameRate propiedad en las diferentes capas. - video.layers (Matriz) — Una lista de capas de codificación de vídeo activas, ordenadas de mayor a menor resolución. Cada objeto de capa incluye: - width (Número) — La anchura de la resolución de vídeo de esta capa en píxeles - height (Número) — La resolución horizontal del vídeo para esta capa, en píxeles - encodedFrameRate (Número) — La frecuencia de fotogramas de esta capa, en fotogramas por segundo - bitrate (Número) — La tasa de bits utilizada por esta capa en bits por segundo - totalBitrate (Número) — La tasa de bits total utilizada por esta capa en bits por segundo. Esto incluye las cabeceras RTP, el relleno y la carga útil - scalabilityMode (Número) — Una cadena que describe la configuración de escalabilidad (por ejemplo, "L1T3" (una capa espacial y tres capas temporales). Esto indica si se utiliza la transmisión simultánea o SVC - codec (Número) — El códec utilizado por esta capa - qualityLimitationReason (Número) — (Opcional) Una cadena que indica por qué la calidad del vídeo del editor podría haberse visto reducida. Valores posibles: - "bandwidth" — Deterioro de la calidad debido a un ancho de banda de red insuficiente - "cpu" — Deterioro de la calidad debido a las limitaciones de la CPU del dispositivo cliente - "other" — Otras razones no especificadas - transportStats (Objeto) — Esta propiedad está en desuso y se eliminará en el futuro. En su lugar, utiliza mediaLink.transport. - mediaLink.transport.connectionEstimatedBandwidth (Número) — El ancho de banda disponible estimado para la conexión, en bits por segundo (bps) - mediaLink.transport.networkCondition (Cadena) — Estado actual de la red. Los valores posibles son: unknown, critical, warning, fair, good y excellent. - mediaLink.transport.networkConditionReason (Cadena) — Motivo principal que afecta al estado de la red. Los valores posibles son: none, unknown, bandwidth y packetLoss. Además, en el caso de un editor en una sesión retransmitida, cada objeto de la matriz contiene las dos propiedades siguientes: - connectionId (Cadena) — El identificador único de la conexión del cliente, que coincide con el id propiedad del connection propiedad de la conexiónCreada evento que el objeto «Session» ha enviado al cliente remoto. - subscriberId (Cadena) — El identificador único del suscriptor, que coincide con el id propiedad del objeto «Subscriber» en la aplicación del cliente suscriptor. Estas dos propiedades no están definidas para un editor en una sesión enrutada.

Véase: : - Subscriber.getStats() - Publisher.getRtcStatsReport()

Devoluciones:

getStyle() → {Object}

Devuelve un objeto que contiene las propiedades que definen los controles actuales de la interfaz de usuario de Publisher. Puedes modificar las propiedades de este objeto y pasar el objeto a la setStyle() método del objeto `Publisher`. (Consulta la documentación de setStyle() para ver los estilos que definen este objeto.)

Véase: : - setStyle()

Devoluciones:

El objeto que define los estilos del Publisher.

getTargetScalabilityMode() → {String|undefined}

Devuelve el modo de escalabilidad de destino que se ha establecido explícitamente mediante Publisher.setTargetScalabilityMode(). Devuelve el último valor pasado al método de configuración, o undefined si el método setter nunca se ha llamado. Esto refleja la intención del usuario, no el modo realmente aplicado (que puede variar debido a un recurso alternativo dependiente del códec).

Esta es una función en fase beta.

Véase: : - Publisher.setTargetScalabilityMode()

Devoluciones:

El modo de escalabilidad de destino establecido por el llamante, o undefined si no se ha establecido explícitamente.

getVideoBitratePreset() → {String}

Devuelve el valor preestablecido de la tasa de bits para el Publisher.

Véase: : - Publisher.setVideoBitratePreset() - Velocidad de bits máxima del editor

Devoluciones:

Uno de los siguientes valores: «custom», «extra_bw_saver», «bw_saver» o «default»

getVideoContentHint() → {String}

Devuelve la sugerencia de contenido de la pista de vídeo.

Véase: : - Publisher.setVideoContentHint()

Devoluciones:

Uno de los siguientes valores: "", "motion", "detail, o "text".

getVideoFilter() → {Object}

Devuelve el filtro de vídeo aplicado por el editor.

Véase: : - OT.hasMediaProcessorSupport('video') - Publisher.applyVideoFilter() - Publisher.clearVideoFilter()

Devoluciones:

El filtro de vídeo que se aplica a la fuente de entrada de vídeo utilizada por el editor. Comprueba el type propiedad del objeto para ver el tipo de filtro de vídeo. Se admiten los siguientes filtros:

  • Filtro de desenfoque de fondo - La type La propiedad del objeto se establece en "backgroundBlur". Un objeto de filtro de desenfoque de fondo incluye un blurStrength propiedad, que define el radio de desenfoque, y que se puede establecer en "low" o "high".
  • Filtro de sustitución de fondo - La type La propiedad «type» del objeto está establecida en "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.

getVideoSource() → {VideoSource}

Devuelve un objeto que contiene las propiedades que definen la fuente de vídeo actual del editor.

Véase: : - Publisher.setVideoSource() - OT.initPublisher()

Devoluciones:

El objeto devuelto tiene las siguientes propiedades:

  • deviceId (Cadena | nulo) — El identificador del dispositivo.
  • type (Cadena | nulo) — Se establece en «camera» (para un vídeo grabado con la cámara), «screen» (para un vídeo de pantalla compartida) o «custom» (para un vídeo con una fuente MediaStreamTrack).
  • track (MediaStreamTrack | null) — El MediaStreamTrack del vídeo.

Las propiedades que no sean aplicables se establecerán en «null».

off(tipo, controlador, contexto) → {Object}

Elimina uno o varios controladores de eventos.

Si se pasa un nombre de evento y un método de gestión, dicho método se elimina para ese evento:

obj.off("eventName", eventHandler);

Si se pasan varios nombres de eventos y un método de gestión, dicho método se elimina para esos eventos:

obj.off("eventName1 eventName2", eventHandler);

Si pasas un nombre de evento (o varios nombres) y no método de controladores: se eliminan todos los controladores para esos eventos:

obj.off("event1Name event2Name");

Si no se pasan argumentos, todos Se eliminan los controladores de eventos para todos los eventos enviados por el objeto:

obj.off();

El método también admite una sintaxis alternativa, en la que el primer parámetro es un objeto que consta de un mapa hash con los nombres de los eventos y las funciones de gestión, y el segundo parámetro (opcional) es el contexto para cada una de estas funciones:

obj.off(
   {
      eventName1: event1Handler,
      eventName2: event2Handler
   });
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 «accessAllowed accessDenied accessDialogClosed». 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. El gestor debe ser el mismo objeto de función que se pasó a on(). Ten cuidado con los ayudantes como bind() que devuelven una nueva función cuando se invocan. 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 los controladores que utilicen el contexto especificado. (El contexto debe coincidir con el contexto pasado a on().)

Véase: : - on() - una vez() - Eventos

Devoluciones:

El objeto que ha activado el evento.

on(tipo, controlador, contexto) → {EventDispatcher}

Añade una función de gestión de eventos para uno o varios eventos.

El siguiente código añade un controlador de eventos para un evento:

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

Si se pasan varios nombres de eventos y un método de gestión, dicho método se registra para cada uno de esos eventos:

obj.on("eventName1 eventName2",
       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:

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

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 cada una de estas funciones de gestión:

obj.on(
   {
      eventName1: function (event) {
              // This is the handler for eventName1.
          },
      eventName2:  function (event) {
              // This is the handler for eventName2.
          }
   },
   obj);

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. En esta cadena puedes especificar varios nombres de eventos, separándolos con un espacio. El controlador de eventos procesará cada uno de ellos.
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

Devoluciones:

El objeto EventDispatcher.

once(tipo, controlador, contexto) → {Object}

Añade una función de gestión de eventos para uno o varios eventos. Una vez que se invoca el gestor, el método de gestión especificado deja de ser el gestor de este evento. (Cuando se utiliza el on() método para añadir un controlador de eventos; el controlador es no se elimina cuando se invoca.) El once() El método es equivalente a llamar a la on() método y llamada off() la primera vez que se invoca el controlador.

El siguiente código añade un controlador de eventos de uso único para un evento:

obj.once("eventName", function (event) {
   // This is the event handler.
});

Si se pasan varios nombres de eventos y un método de gestión, dicho método se registra para cada uno de esos eventos:

obj.once("eventName1 eventName2"
         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:

obj.once("eventName",
         function (event) {
             // This is the event handler.
         },
         obj);

El método también admite una sintaxis alternativa, en la que el primer parámetro es un objeto que consta de un mapa hash con los nombres de los eventos y las funciones de gestión, y el segundo parámetro (opcional) es el contexto para cada una de estas funciones:

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:
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() - off() - Eventos

Devoluciones:

El objeto que ha activado el evento.

publishAudio(valor) → {Editorial}

Comienza a publicar el audio (si aún no se está publicando) cuando el value es true; detiene la publicación de audio (si se está publicando en ese momento) cuando el value es false.

Parámetros:
Nombre Tipo Descripción
value Booleano Si se debe empezar a publicar contenido de audio (true) o no (false).

Véase: : - OT.initPublisher() - Stream.hasAudio - StreamPropertyChangedEvent

Devoluciones:

publishCaptions(valor) → {Promise.<void>}

Comienza a publicar subtítulos (si aún no se están publicando) cuando el value es true; deja de publicar leyendas (si se están publicando en ese momento) cuando el value es false.

Nota: No se publicarán subtítulos si el editor no dispone de una fuente de audio.

Para más información, consulte el Subtítulos en directo guía del desarrollador.

Parámetros:
Nombre Tipo Descripción
value Booleano Si se debe empezar a publicar leyendas (true) o no (false).

Véase: : - OT.initPublisher() - subscribeToCaptions() - isSubscribedToCaptions() - Stream.hasCaptions - StreamPropertyChangedEvent

Devoluciones:

publishVideo(valor, callback) → {Editorial}

Activa o desactiva el vídeo para el editor. Hace que el vídeo se publique (si en ese momento no se está publicando, el cliente está conectado y el editor está publicando) cuando el value es true; deja de publicar el vídeo (si se está publicando en ese momento) cuando el value es false.

Nota: El comportamiento de publishVideo varía en función de si el editor está conectado en ese momento y publicando:

  • Llamando a publishVideo(true) Cuando el editor no está conectado a una sesión, el editor captura y reproduce el vídeo localmente, pero no lo transmite en streaming.
  • Llamando a publishVideo(false) Cuando el editor no está conectado a una sesión, el editor deja de grabar vídeo localmente. No se transmite ningún vídeo.
  • Llamando a publishVideo(true) Cuando el editor está conectado a una sesión pero no está publicando en ese momento, el sistema captura y reproduce el vídeo localmente, pero no lo transmite en streaming.
  • Llamando a publishVideo(false) Cuando el editor está conectado a una sesión pero no está publicando en ese momento, el editor deja de grabar vídeo localmente. No se transmite ningún vídeo.
  • Llamando a publishVideo(true) Cuando el editor está conectado a una sesión y, al mismo tiempo, está publicando, esto hace que el editor capture y reproduzca el vídeo localmente y que lo transmita en streaming.
  • Llamando a publishVideo(false) Cuando el emisor está conectado a una sesión y, al mismo tiempo, está emitiendo, esto hace que el emisor deje de capturar vídeo y transmita fotogramas de vídeo vacíos.
Parámetros:
Nombre Tipo Descripción
value Booleano Si conviene empezar a publicar vídeos (true) o no (false).
callback función (Opcional) Una función que toma como argumento un Error parámetro. Una vez completado con éxito el método, este error El parámetro no está definido. Se produce un error si el editor no dispone de dispositivos para proporcionar la transmisión multimedia o si la solicitud multimedia del usuario no es compatible.

Véase: : - OT.initPublisher() - Stream.hasVideo - StreamPropertyChangedEvent

Devoluciones:

removeEventListener(tipo, oyente, contexto)

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.
context Objeto (Opcional) Si especificas un context, se elimina el controlador de eventos para todos los eventos especificados y los oyentes de eventos que utilicen el contexto especificado. (El contexto debe coincidir con el contexto pasado a addEventListener().)

En desuso — uso 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.

Véase: : - off() - Eventos

setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise}

Establece un MediaProcessorConnector para la pista de audio del editor. Un editor solo puede tener una pista de audio MediaProcessorConnector se aplica de una sola vez. Al configurar un nuevo conector, se elimina el conector de audio configurado anteriormente.

Nota: Los MediaProcessors solo son compatibles con las versiones recientes de Chrome, Electron, Opera, Edge, Samsung Internet y Android WebView. No son compatibles con otros navegadores (que no estén basados en Chromium) ni con iOS. Puedes comprobar si el cliente admite esta función llamando a la función OT.hasMediaProcessorSupport('audio') método.

Importante: Los procesadores multimedia requieren una compatibilidad adecuada con el procesador. Incluso en los navegadores compatibles, es posible que los transformadores no funcionen de forma estable cuando los procesos en segundo plano limiten los recursos de procesamiento disponibles. Véase Requisitos del cliente.

La llamada a este método da lugar a un error (la Promise devuelta por el método se rechaza) en las siguientes condiciones:

  • No hay ningún dispositivo de entrada de audio (micrófonos) disponible.
  • Se ha producido un error al obtener el audio del dispositivo de entrada de audio.
  • Se ha producido un error al obtener la pista procesada del MediaProcessorConnector.

Puedes borrar el conector actual llamando a este método con null.

Para más información, consulte el Uso de la biblioteca Vonage Media Processor guía del desarrollador.

Parámetros:
Nombre Tipo Descripción
mediaProcessorConnector MediaProcessorConnector Una instancia de MediaProcessorConnector. Consulta el Documentación de la biblioteca de Vonage Media Processor.

Véase: : - OT.hasMediaProcessorSupport('audio')

Devoluciones:

Una promesa que se resuelve cuando la operación se completa con éxito. Si se produce un error, la promesa se rechaza y no se establece ningún conector.

setAudioSource(audioSource) → {Promise}

Cambia la fuente de entrada de audio que utiliza el emisor. Puedes configurar la audioSource a un identificador de dispositivo (cadena) o a un objeto MediaStreamTrack de audio.

Esto provocará un error (la Promise devuelta por el método se rechaza) en las siguientes condiciones:

  • El navegador no admite este método. Este método no es compatible con Internet Explorer ni con las versiones de Edge que no se basan en Chromium (anteriores a la versión 79).
  • El reproductor no se ha iniciado con una fuente de audio. (El audioSource de la OT.initPublisher() El método se estableció en null o false).
  • El usuario ha denegado el acceso al dispositivo de entrada de audio.
  • Se ha producido un error al obtener el audio del dispositivo de entrada de audio o del objeto MediaStreamTrack .
  • El audioSource El valor no es una cadena ni un objeto MediaStreamTrack.
  • El audioSource «string» no es un dispositivo de entrada de audio válido disponible para el navegador.
Parámetros:
Nombre Tipo Descripción
audioSource Objeto El identificador del dispositivo (cadena de caracteres) de un dispositivo de entrada de audio, o un objeto MediaStreamTrack de audio.

Véase: : - Publisher.getAudioSource()

Devoluciones:

Una promesa que se resuelve cuando la operación se completa con éxito. Si se produce un error, la promesa se rechaza.

setMaxVideoBitrate(bitrateBps)

Establece una tasa de bits máxima personalizada para el editor. Establece este valor entre 5.000 y 10.000.000. Si se establece el valor en 0, se elimina cualquier tasa de bits personalizada establecida anteriormente y se vuelve al comportamiento predeterminado.

La configuración de la velocidad de bits máxima es compatible con las versiones más recientes de todos los navegadores compatibles.

Parámetros:
Nombre Tipo Descripción
bitrateBps Entero El valor de la tasa de bits del vídeo: entre 5.000 y 10.000.000. Establece este valor en 0 para eliminar una configuración personalizada de la tasa de bits y volver al comportamiento predeterminado.

Véase: : - Publisher.getMaxVideoBitrate() - Publisher.setVideoBitratePreset() - Velocidad de bits máxima del editor

setPreferredFrameRate(frameRate) → {Promise}

Establece la frecuencia de fotogramas preferida para el vídeo. Esta función establece la frecuencia de fotogramas deseada para la publicación del vídeo. La frecuencia de fotogramas debe ser un número entero ≥ 1. Si se realiza correctamente, aplica los nuevos límites de frecuencia de fotogramas a la pista de vídeo.

Parámetros:
Nombre Tipo Descripción
frameRate número La frecuencia de fotogramas preferida para el vídeo.
Devoluciones:

Se resuelve cuando las restricciones de vídeo se aplican correctamente. De lo contrario, se produce un error; por ejemplo, si el editor no está publicando vídeo, la frecuencia de fotogramas no es válida o falla la aplicación de las restricciones.

setPreferredResolution(preferredResolution) → {Promise}

Establece la resolución de vídeo preferida. Esta función establece la resolución preferida para el editor de vídeo. Comprueba que el valor introducido sea un objeto con propiedades de anchura y altura de tipo entero positivo, y verifica que la resolución no sea superior a la resolución de publicación inicial. Si la operación se realiza correctamente, aplica las nuevas restricciones a la pista de vídeo.

Parámetros:
Nombre Tipo Descripción
preferredResolution Objeto La resolución deseada. Propiedades Nombre Tipo Descripción --- --- --- width número Ancho preferido del vídeo (píxeles). height número Altura recomendada del vídeo (píxeles).
Devoluciones:

Se resuelve cuando las restricciones de vídeo se aplican correctamente. De lo contrario, se produce un error; por ejemplo, si el editor no está publicando vídeo, las dimensiones no son válidas o la resolución supera la resolución inicial.

setStyle(estilo, valor) → {Editorial}

Establece las propiedades que definen el aspecto de algunos controles de la interfaz de usuario del Publisher.

Puedes pasar uno o dos parámetros a este método.

Si pasas un parámetro, style, es un objeto que tiene 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 enviados por el objeto Session.
  • backgroundImageURI (Cadena) — Un URI de una imagen que se mostrará como imagen de fondo cuando no se muestre ningún vídeo. (Es posible que no se muestre ningún vídeo si se llama a publishVideo(false) en el objeto Publisher). Puedes pasar un URI http o https 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 llamar a myPublisher.setStyle("backgroundImageURI", myPublisher.getImgData())). Si la URL o los datos de la imagen no son válidos, se ignora la propiedad (el intento de establecer la imagen falla sin mostrar ningún mensaje). Se eliminará el fondo actual si no se pasa ninguna imagen y se mostrarán las iniciales si se han establecido previamente.
  • 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 en pantalla).

Por ejemplo, el siguiente código pasa un parámetro al método:

myPublisher.setStyle({nameDisplayMode: "off"});

Si pasas dos parámetros, style y value, son pares clave-valor que definen una propiedad del estilo de visualización. Por ejemplo, el siguiente código pasa dos valores de parámetro al método:

myPublisher.setStyle("nameDisplayMode", "off");

Puedes configurar los ajustes iniciales al llamar a la función Session.publish() o OT.initPublisher() método. Pasa un style propiedad como parte de la properties parámetro del método.

El objeto OT envía un exception incluso si se pasa un estilo no válido al método. El code La propiedad del objeto ExceptionEvent está establecida en 1011.

Parámetros:
Nombre Tipo Descripción
style Objeto Puede ser un objeto que contenga propiedades que definan el estilo, o bien una cadena que defina esta única propiedad de estilo que se va a establecer.
value Cadena El valor que hay que establecer para el style se ha pasado. Pasa un valor para este parámetro solo si el valor del style El parámetro es una cadena de caracteres.

Véase: : - getStyle() - setStyle() - Session.publish() - OT.initPublisher()

Devoluciones:

El objeto Publisher

setTargetScalabilityMode(modo de escalabilidad)

Establece el modo de escalabilidad deseado (SVC: codificación de vídeo escalable) para este editor.

El modo de escalabilidad controla el número de capas espaciales (resolución) y temporales (frecuencia de fotogramas) que codifica WebRTC. Este modo se aplica a la ruta de medios del Media Router.

Este método puede invocarse en cualquier momento; no es necesario que la negociación de la ruta de medios haya finalizado. El modo se aplicará una vez que se haya establecido la ruta de medios del enrutador de medios.

Si se negocia un códec que no sea SVC (VP8, H.264) en la ruta de medios del enrutador multimedia, se utiliza el modo aplicable más cercano: las capas espaciales se fijan obligatoriamente en 1, conservando la dimensión temporal (p. ej., L2T2L1T2 cuando se negocia VP8).

Modos válidos:

  • L1T1, L1T2, L1T3, L2T1, L2T2, L2T3, L3T1, L3T2, L3T3

Esta es una función en fase beta.

Parámetros:
Nombre Tipo Descripción
scalabilityMode Cadena El identificador del modo de escalabilidad de destino (p. ej., "L1T3", "L3T3").

Véase: : - Publisher.getTargetScalabilityMode()

Lanzamientos:

setVideoBitratePreset(preset)

Establece la tasa de bits máxima de vídeo para el editor en uno de los siguientes ajustes predefinidos: «default», «bw_saver» o «extra_bw_saver». Para obtener más información, consulta el Velocidad de bits máxima del editor guía del desarrollador.

La configuración de la velocidad de bits máxima es compatible con las versiones más recientes de todos los navegadores compatibles.

Parámetros:
Nombre Tipo Descripción
preset Cadena El ajuste preestablecido que se debe utilizar: «default», «bw_saver» o «extra_bw_saver».

Véase: : - Publisher.getVideoBitratePreset() - Publisher.setMaxVideoBitrate()

setVideoContentHint(videoContentHint) → {Promise.<void>}

Establece la sugerencia de contenido para 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.

Utiliza este método para cambiar dinámicamente el contenido de vídeo que se muestra. Configura el contenido de vídeo inicial que se muestra estableciendo el videoContentHint propiedad de las opciones pasadas a la OT.initPublisher() método.

Chrome 60 o superior, Safari 12.1 o superior, Edge 79 o superior, Opera 47 o superior, las versiones recientes de Samsung Internet, WebView en Android 70 o superior, y WebView en iOS 12.2 o superior admiten las sugerencias de contenido de vídeo.

Parámetros:
Nombre Tipo Descripción
videoContentHint Cadena Puedes establecer este valor en uno de los siguientes: - "" — No se ofrece ninguna pista. - "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 retransmisión con 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 retransmisión de pantalla compartida que contenga contenido de texto.

Véase: : - Publisher.getVideoContentHint() - OT.initPublisher()

Devoluciones:

setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise}

Establece un MediaProcessorConnector para la pista de vídeo del editor. Un editor solo puede tener una pista de vídeo. MediaProcessorConnector se aplica de una sola vez. Al configurar un nuevo conector, se elimina el conector de vídeo configurado anteriormente.

Este método es incompatible con el Publisher.applyVideoFilter() método. Al llamar a este método después de Publisher.applyVideoFilter(filter) devuelve una promesa rechazada con un error, con el name propiedad del conjunto de errores establecida en 'OT_NOT_SUPPORTED'. Puedes borrar el filtro de vídeo llamando a Publisher.clearVideoFilter().

Nota: Los MediaProcessors 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.

Importante: Los procesadores multimedia requieren una compatibilidad adecuada con el procesador. Incluso en los navegadores compatibles, es posible que los transformadores no funcionen de forma estable cuando los procesos en segundo plano limiten los recursos de procesamiento disponibles. Véase Requisitos del cliente.

La llamada a este método da lugar a un error (la Promise devuelta por el método se rechaza) en las siguientes condiciones:

  • No hay ningún dispositivo de entrada de vídeo (cámaras) disponible.
  • Ya se ha aplicado un filtro de vídeo a través del Publisher.applyVideoFilter() método.
  • Se ha producido un error al adquirir vídeo desde el dispositivo de entrada de vídeo.
  • Se ha producido un error al obtener la pista procesada del MediaProcessorConnector.

Puedes borrar el conector actual llamando a este método con null.

Para más información, consulte el Uso de la biblioteca Vonage Media Processor guía del desarrollador.

Parámetros:
Nombre Tipo Descripción
mediaProcessorConnector MediaProcessorConnector Una instancia de MediaProcessorConnector. Consulta el Documentación de la biblioteca de Vonage Media Processor.

Véase: : - OT.hasMediaProcessorSupport('video')

Devoluciones:

Una promesa que se resuelve cuando la operación se completa con éxito. Si se produce un error, la promesa se rechaza y no se establece ningún conector.

setVideoSource(videoSourceId) → {Promise}

Este método configura la fuente de vídeo para un editor que utiliza una cámara. Introduce el ID del dispositivo de la nueva fuente de vídeo.

Lo siguiente dará lugar a errores:

  • Si el videoSourceId Si el parámetro no es una cadena ni el ID de un dispositivo de entrada de vídeo válido, la promesa se rechazará con un error con el name propiedad establecida en 'OT_INVALID_VIDEO_SOURCE'.
  • Si el editor no utiliza actualmente una entrada de cámara, la promesa se rechazará con un error con el name propiedad establecida en 'OT_SET_VIDEO_SOURCE_FAILURE'.
Parámetros:
Nombre Tipo Descripción
videoSourceId Cadena El identificador de un dispositivo de entrada de vídeo (cámara).

Véase: : - OT.getDevices() - Publisher.getVideoSource() - Publisher.cycleVideo()

Devoluciones:

Una promesa que devuelve un valor nulo cuando la operación se completa con éxito. Si se produce un error, la promesa se rechaza.

videoHeight() → {Number}

Devuelve la altura, en píxeles, del vídeo local del editor, leída desde el local <video> elemento. Este valor es el mismo que stream.videoDimensions.height.

Devoluciones:

La altura, en píxeles, del vídeo local del editor.

videoWidth() → {Number}

Devuelve la anchura, en píxeles, del vídeo local del editor, leída desde el local <video> elemento. Este valor es el mismo que stream.videoDimensions.width

Devoluciones:

El ancho, en píxeles, del vídeo local del editor.

Eventos

accesoPermitido

Se envía cuando el usuario ha pulsado el botón «Permitir», concediendo a la aplicación acceso a la cámara y al micrófono. El objeto Publisher tiene un accessAllowed propiedad que indica si el usuario ha concedido acceso a la cámara y al micrófono.

Véase: : - Evento

acceso denegado

Se envía cuando el usuario ha hecho clic en el botón «Rechazar», lo que impide que la aplicación tenga acceso a la cámara y al micrófono.

Este evento también se activa si el usuario retira los permisos tras haberlos concedido previamente.

Nota: En macOS 10.15 y versiones posteriores (Catalina), para publicar una transmisión compartida de pantalla, el usuario debe conceder al navegador acceso a la pantalla en las Preferencias del Sistema de macOS > Seguridad y privacidad > Privacidad > Grabación de pantalla. De lo contrario, el Publisher enviará un accessDenied evento.

Véase: : - Evento

accessDialogClosed

Se envía al cerrar el cuadro de diálogo «Permitir/Denegar». (Se trata del cuadro de diálogo en el que el usuario puede conceder a la aplicación acceso a la cámara y al micrófono.)

Véase: : - Evento

accessDialogOpened

Se envía al abrir el cuadro de diálogo «Permitir/Denegar». (Se trata del cuadro de diálogo en el que el usuario puede conceder a la aplicación acceso a la cámara y al micrófono.)

Véase: : - Evento

audioInputDeviceChanged

Se activa cuando se cambia el dispositivo de entrada de audio.

Véase: : - Evento - Evento de cambio de dispositivo de entrada de audio

audioLevelUpdated

Se envía periódicamente para indicar el nivel de audio del reproductor. El evento se envía hasta 60 veces por segundo, dependiendo del navegador. El audioLevel La propiedad del evento es el nivel de audio, que va de 0 a 1,0. Véase Evento de actualización del nivel de audio Para obtener más información.

En el siguiente ejemplo se ajusta el valor de un elemento «meter» que muestra el volumen del emisor. Ten en cuenta que el nivel de audio se ajusta de forma logarítmica y que se aplica una media móvil:

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 ejemplo muestra el algoritmo que utiliza el indicador de nivel de audio predeterminado que aparece en un Publisher de solo audio.

Véase: : - Evento de actualización del nivel de audio

destruido

Se activa cuando el elemento «Publisher» se elimina del DOM HTML. Cuando se activa este evento, puedes optar por modificar o eliminar los elementos del DOM HTML relacionados con el «Publisher».

mediaStopped

El usuario que publica la transmisión ha dejado de compartir uno o todos los tipos de contenido multimedia (vídeo, audio y/o pantalla). Esto puede ocurrir cuando un usuario desconecta una cámara o un micrófono utilizado como fuente multimedia para el editor. O bien, puede ocurrir cuando un usuario cierra una ventana, si las fuentes de vídeo y audio de la transmisión son elementos MediaStreamTrack y las pistas se detienen o se eliminan.

Véase: : - MediaStoppedEvent

mediaStreamAvailable

Se envía cuando MediaStream está disponible.

Véase: : - Evento

silenciamiento forzado

Un moderador ha obligado a este cliente a silenciar el audio.

Véase: : - Evento - Session.forceMuteAll() - Session.forceMuteStream() - Silenciar el audio de las transmisiones en una sesión

cambio en el estado de la red

Se envía cuando se detecta un cambio en las condiciones de red del editor.

Este evento se diferencia de videoDisabled y videoEnabled eventos, en el sentido de que informa de cambios en el estado de la red, en lugar de cambios en el estado de la pista de vídeo del editor. Las aplicaciones pueden utilizar este evento para responder a problemas de red, como actualizar la interfaz de usuario, registrar datos de telemetría o activar un comportamiento adaptativo.

Las características de este evento son las siguientes:

  • reason — Indica la causa del evento. Actualmente, siempre será "networkConditionChanged"
  • statsContainer — Objeto que contiene una instantánea completa de las estadísticas actuales, con la misma estructura que el objeto devuelto por una getStats() invocación. Ten en cuenta que, para un editor en una sesión retransmitida, el objeto de estadísticas contiene un connectionId y un subscriberId, ya que el editor envía un flujo independiente a cada suscriptor y las estadísticas se facilitan por suscriptor. Esto permite al usuario distinguir qué suscriptor puede estar sufriendo una degradación de la red. En las sesiones retransmitidas, solo se incluyen en el evento las estadísticas correspondientes al suscriptor afectado.

Véase: : - Evento

streamCreado

El editor ha comenzado a transmitir en directo la sesión.

Véase: : - StreamEvent - Session.publish()

streamDestroyed

El «Publisher» ha dejado de transmitir a la sesión. El comportamiento predeterminado es que el objeto «Publisher» se elimine del DOM HTML. El objeto «Publisher» envía un destroyed evento que se produce cuando el elemento se elimina del DOM HTML. Si llamas a la función preventDefault() método del objeto de evento en el oyente de eventos, se impide el comportamiento predeterminado y, si lo deseas, puedes conservar el Publisher para reutilizarlo o liberarlo mediante tu propio código.

Véase: : - StreamEvent

videoDimensionsChanged

Se envía cuando la editorial local <video> El elemento detecta un cambio de dimensión. Cuando el editor está publicando activamente, esto también actualiza el stream.videoDimensions propiedad. Ejemplos de lo que puede provocar que el elemento de vídeo local cambie de tamaño:

  • En stream.videoType se establece en "screen" (compartir pantalla) y el usuario cambia el tamaño de la ventana capturada.
  • Cuando el vídeo se publica desde un dispositivo móvil y el usuario gira el dispositivo, lo que provoca que cambie la orientación de la cámara.
  • Cuando llama la editorial Editor#setPreferredResolution, modificando la resolución de captura deseada.

Este objeto de evento tiene un newValue propiedad y un oldValue propiedad, que representa las dimensiones nuevas y antiguas del vídeo. Cada una de ellas tiene una height propiedad y un width propiedad que representa la altura y la anchura, en píxeles.

Véase: : - Evento de cambio de dimensiones del vídeo

vídeo desactivado

Se envía cuando el vídeo del editor está desactivado.

Antes de enviar este evento, cuando la calidad de la transmisión del editor se deteriora hasta un nivel tan bajo que la transmisión de vídeo corre el riesgo de desactivarse, el editor envía un videoDisableWarning evento.

Si la conectividad mejora y vuelve a permitir la transmisión de vídeo, el objeto Publisher envía un videoEnabled evento, y el suscriptor vuelve a recibir el vídeo.

De forma predeterminada, Publisher muestra un indicador de vídeo desactivado cuando un videoDisabled El evento con este motivo se envía y elimina el indicador cuando el videoEnabled Se envía un evento con este motivo. Puedes controlar la visualización de este icono configurando el videoDisabledDisplayMode con el Publisher.setStyle() método o configurando el videoDisabledDisplayMode style propiedad al inicializar el Publisher con el OT.initPublisher() método.

Puedes activar esta función alternativa de solo audio configurando el publisher propiedad a true en el audioFallback opción pasada al OT.initPublisher() método para el cliente de publicación. (Véase OT.initPublisher().)

Véase: : - Evento - videoDesactivarAviso evento - videoEnabled evento

videoDesactivarAviso

Se envía cuando el editor determina que la calidad de la transmisión se ha deteriorado y el vídeo se desactivará si la calidad sigue empeorando. Si la calidad sigue empeorando, el editor desactiva el vídeo y envía un videoDisabled evento.

De forma predeterminada, Publisher muestra un indicador de advertencia de vídeo desactivado cuando se envía este evento (y el vídeo está desactivado). Puedes controlar la visualización de este icono llamando a la función setStyle() método del Publisher y configurar el videoDisabledDisplayMode propiedad, o bien puedes configurar la videoDisabledDisplayMode propiedad al llamar a la OT.initPublisher() método y configurando el style propiedad de la properties parámetro.

Véase: : - Evento - vídeo desactivado evento - videoAdvertencia desactivada evento

videoAdvertencia desactivada

Se envía cuando el Publisher determina que la calidad de la transmisión ha mejorado hasta el punto de que la desactivación del vídeo ya no supone un riesgo inmediato. Este evento se envía después de que el objeto Publisher envíe un videoDisableWarning evento.

Véase: : - Evento - videoDesactivarAviso evento - vídeo desactivado evento

videoElementCreated

Se activa cuando se crea el elemento de vídeo del Publisher. Añade un oyente para este evento cuando configure el insertDefaultUI opción de false en la llamada a la OT.initPublisher() método. En element La propiedad del objeto de evento es una referencia al Publisher's video elemento (o, en Internet Explorer, el object elemento que contiene el vídeo). Añádelo al DOM HTML para mostrar el vídeo. Cuando establezcas el insertDefaultUI opción de falseEl video (o objectEl elemento ) no se inserta automáticamente en el DOM.

Añade un oyente para este evento solo si has configurado el insertDefaultUI opción de false. Si aún no has configurado insertDefaultUI opción de false, no muevas el video (o object) en el DOM de HTML. Al hacerlo, se destruye el objeto Publisher.

Véase: : - Evento de creación de un elemento de vídeo

videoEnabled

Se envía cuando el editor reanuda el envío de vídeo al editor después de que el vídeo se hubiera desactivado previamente.

Véase: : - Evento - vídeo desactivado evento

videoQualityChanged

Se envía cuando el editor detecta un cambio significativo en la calidad del vídeo, como una disminución de la resolución o una degradación de la calidad debida al ancho de banda o a la CPU.

Este evento se diferencia de videoDisabled y videoEnabled Eventos del editor en los que se notifican cambios relevantes en la calidad del vídeo. videoDisabled y videoEnabled solo indica que la pista de vídeo del suscriptor se ha activado o desactivado (por ejemplo, debido a una actualización de las propiedades de la transmisión o a un cambio a una fuente de audio alternativa). Por el contrario, este evento proporciona información de diagnóstico sobre las causas de la pérdida de calidad —como las limitaciones de la CPU o del ancho de banda— y también puede activarse incluso cuando el vídeo permanece activado.

El objetivo principal de este evento es indicar los motivos de limitación de calidad. Es posible que la resolución o la capa de vídeo cambien incluso cuando el motivo no sea explícitamente un cambio de resolución; por ejemplo, como consecuencia de limitaciones de la CPU. Consulta las estadísticas actualizadas que se proporcionan en el evento para conocer el contexto completo. Cuando un motivo de degradación de la calidad que estaba activo anteriormente desaparezca, el evento se activará de nuevo con "none" como motivo.

El reason Esta propiedad define el motivo del cambio en la calidad del vídeo. Se puede establecer en uno de los siguientes valores:

  • "bandwidth" — Deterioro de la calidad debido a un ancho de banda de red insuficiente
  • "cpu" — Deterioro de la calidad debido a las limitaciones de la CPU del dispositivo cliente
  • "other" — Otros motivos no especificados
  • "codecChange" — Indica que ha cambiado el códec de vídeo
  • "resolutionChange" — Esto puede deberse a limitaciones en la tasa de bits, a la adaptación del codificador, a cambios en la fuente de la cámara (por ejemplo, al cambiar de cámara o modificar la resolución de entrada) o a cambios en la configuración, y no siempre implica una pérdida de calidad.
  • "none" — Cuando se resuelve un motivo de deterioro de la calidad que estaba activo anteriormente

El statsContainer La propiedad define un objeto que contiene una instantánea completa de las estadísticas actuales, con una estructura idéntica a la del objeto devuelto por una getStats() invocación. Ten en cuenta que, para un editor en una sesión retransmitida, el objeto de estadísticas contiene un connectionId y un subscriberId, ya que el editor envía un flujo independiente a cada suscriptor y las estadísticas se facilitan por suscriptor. Esto permite al usuario distinguir qué suscriptor puede estar sufriendo una pérdida de calidad. En las sesiones retransmitidas, solo se incluyen en el evento las estadísticas correspondientes al suscriptor afectado.

Véase: : - Evento