El objeto «Subscriber» es una representación del elemento de vídeo local que está reproduciendo una transmisión remota. El objeto «Subscriber» incluye métodos que permiten desactivar y activar la reproducción de audio local para la transmisión a la que se está suscrito. El subscribe() método del Sesión El objeto devuelve un objeto Subscriber.

Propiedades

Nombre Tipo Descripción
element Elemento El elemento DOM HTML que contiene al suscriptor.
id Cadena El identificador DOM del suscriptor.
stream Transmisión El canal al que te estás suscribiendo.

Métodos

Nombre Descripción
addEventListener(type, listener, context) En desuso.
getAudioVolume() → {Number} Devuelve el volumen de audio, entre 0 y 100, del suscriptor.
`getCaptionsTranslationLanguage() → {CaptionsLanguageCode null}` Devuelve el código de idioma de traducción de los subtítulos actual para este suscriptor.
getImgData() → {String} Devuelve la cadena de datos PNG codificada en base 64 que representa el vídeo del suscriptor.
getRtcStatsReport() → {Promise} Devuelve una promesa que, en caso de éxito, se resuelve con un objeto RtcStatsReport correspondiente a la transmisión a la que se está suscrito.
getStats(completionHandler) → {Promise.<SubscriberStats>} Devuelve los detalles sobre la calidad de la transmisión del suscriptor, incluyendo lo siguiente: - Total de paquetes de audio y vídeo perdidos - Total de paquetes de audio y vídeo recibidos - Total de bytes de audio y vídeo recibidos - Resolución real del vídeo recibido (a través de videoWidth() y videoHeight()) - Frecuencia de fotogramas real del vídeo descodificado (a través de video.
getStyle() → {Object} Devuelve un objeto que contiene las propiedades que definen los controles actuales de la interfaz de usuario del suscriptor.
isAudioBlocked() Indica si el audio del suscriptor está bloqueado debido a la política de reproducción automática de audio del navegador.
isSubscribedToCaptions() Si el suscriptor está recibiendo subtítulos.
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.
removeEventListener(type, listener, context) En desuso.
restrictFrameRate(value) → {Subscriber} Limita la frecuencia de fotogramas de la transmisión de vídeo del suscriptor cuando se pasa true.
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise} Establece un MediaProcessorConnector para la pista de audio del suscriptor.
setAudioVolume(value) → {Subscriber} Establece el volumen de audio del suscriptor, entre 0 y 100.
setCaptionsTranslationLanguage(langCode) Establece el idioma preferido para la traducción de los subtítulos de este suscriptor.
setPreferredFrameRate(frameRate) → {Promise.<void>} Establece la frecuencia de fotogramas preferida del vídeo del suscriptor.
setPreferredResolution(resolution) → {Promise.<void>} Establece la resolución preferida del vídeo del suscriptor.
setStyle(style, value) → {Subscriber} Establece las propiedades que definen el aspecto de algunos controles de la interfaz de usuario del Suscriptor.
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise} Establece un MediaProcessorConnector para la pista de vídeo del suscriptor.
subscribeToAudio(value) → {Subscriber} Activa y desactiva el audio.
subscribeToCaptions(value) → {Promise.<void>} Activa y desactiva los subtítulos.
subscribeToVideo(value) → {Subscriber} Activa y desactiva el vídeo.
videoHeight() → {Number} Devuelve la altura real recibida, en píxeles, del vídeo del suscriptor.
videoWidth() → {Number} Devuelve la anchura real recibida, en píxeles, del vídeo del suscriptor.

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

getAudioVolume() → {Number}

Devuelve el volumen de audio, entre 0 y 100, del suscriptor.

Por lo general, este método se utiliza junto con el setAudioVolume() método.

Véase: : - setAudioVolume()

Devoluciones:

El volumen del audio, entre 0 y 100, del suscriptor.

getCaptionsTranslationLanguage() → {CaptionsLanguageCode|null}

Devuelve el código del idioma de traducción de los subtítulos actual para este suscriptor. Si no se ha establecido ningún idioma de traducción, devuelve null para indicar que se utiliza el idioma predeterminado.

Esta es una función en fase beta privada.

Devoluciones:

El código de idioma establecido actualmente para la traducción de los subtítulos, o null si es el valor por defecto.

getImgData() → {String}

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

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 = subscriber.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.

getRtcStatsReport() → {Promise}

Devuelve una promesa que, en caso de éxito, se resuelve con un objeto RtcStatsReport para el flujo al que se está suscrito. (Véase Informe de estadísticas de RTC.)

La Promesa será rechazada en las siguientes condiciones:

Véase: : - Publisher.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.<SubscriberStats>}

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

  • Total de paquetes de audio y vídeo perdidos
  • Total de paquetes de audio y vídeo recibidos
  • Total de bytes de audio y vídeo recibidos
  • Resolución real del vídeo recibido (a través de videoWidth() y videoHeight())
  • Frecuencia de fotogramas real del vídeo descodificado (a través de video.decodedFrameRate)

Puedes publicar un flujo de prueba, suscribirte a él (en el cliente de publicación) y utilizar este método para comprobar su calidad. En función de la calidad del flujo, puedes determinar qué resolución de vídeo es compatible y si las condiciones permiten la transmisión de vídeo o audio. A continuación, puede publicar una transmisión adecuada, en función de los resultados. Al utilizar este método para probar una transmisión publicada por su propio cliente, establezca el testNetwork propiedad a true en las opciones que pasas a la Session.subscribe() método. Por ejemplo, consulta el prueba-de-red-opentok proyecto en GitHub.

También puedes utilizar estas estadísticas para que un suscriptor pase a un modo solo de audio si la pérdida de paquetes de audio alcanza un umbral determinado. Si decides hacerlo, debes configurar el subscriber propiedad del audioFallback oponerse a false al inicializar los objetos Publisher para la sesión. Esto evita que el Vonage Video Media Router utilice su propia implementación de conmutación a solo audio. (Consulta la documentación de OT.initPublisher() método).

Parámetros:
Nombre Tipo Descripción
completionHandler función Una función opcional que toma los siguientes parámetros: - error (Error) — La propiedad «error» se establece si el cliente no está conectado. Una vez completada con éxito la llamada al método, esta propiedad queda sin definir. - stats (Objeto) — Un objeto con las siguientes propiedades: - audio.bytesReceived (Número) — El número total de bytes de audio recibidos por el abonado - audio.packetsLost (Número) — Total de paquetes de audio que no llegaron al abonado - audio.packetsReceived (Número) — Número total de paquetes de audio recibidos por el abonado - timestamp (Número) — La marca de tiempo, en milisegundos desde la época Unix, en la que se recopilaron estas estadísticas - video.bytesReceived (Número) — Total de bytes de vídeo recibidos por el abonado - video.packetsLost (Número) — El número total de paquetes de vídeo que no llegaron al abonado - video.packetsReceived (Número) — El número total de paquetes de vídeo recibidos por el abonado - video.frameRate (Número) — La frecuencia media actual de fotogramas del vídeo. Esta propiedad está en desuso y se eliminará en el futuro. En su lugar, utiliza la video.decodedFrameRate propiedad. - video.decodedFrameRate (Número) — La frecuencia de fotogramas del vídeo descodificado (en fotogramas por segundo) - video.codec (Cadena) — El códec de vídeo utilizado por este abonado - video.pauseCount (Número) — Número de veces que se ha pausado la reproducción del vídeo del suscriptor. Se detecta una pausa si no se reproduce ningún fotograma durante más de 5 segundos - video.totalPausesDuration (Número) — Duración acumulada (en milisegundos) de todas las pausas detectadas en la reproducción de vídeo - video.freezeCount (Número) — Número de veces que se ha congelado el vídeo del suscriptor. Una congelación se define en función de la Especificación de estadísticas de WebRTC - video.totalFreezesDuration (Número) — Duración acumulada (en milisegundos) de todas las interrupciones detectadas en la reproducción de vídeo del abonado - senderStats.connectionMaxAllocatedBitrate (Número) — La velocidad de transmisión máxima que se puede estimar para la conexión del remitente, en bps (bits por segundo) - senderStats.connectionEstimatedBandwidth (Número) — Estimación actual del ancho de banda de la conexión del remitente, en bps (bits por segundo) - transport.connectionEstimatedBandwidth (Número) — El ancho de banda disponible estimado para la conexión local, en bits por segundo (bps) - transport.networkCondition (Cadena) — Estado actual de la conexión local. Los valores posibles son: unknown, critical, warning, fair, good y excellent. - transport.networkConditionReason (Cadena) — Motivo principal que afecta al estado de la red local. Los valores posibles son: none, unknown, bandwidth y packetLoss. - remotePublisherTransport.connectionEstimatedBandwidth (Número) — El ancho de banda disponible estimado para la conexión del editor remoto, en bits por segundo (bps) - remotePublisherTransport.networkCondition (Cadena) — Estado actual de la conexión de red con el editor remoto. Los valores posibles son: unknown, critical, warning, fair, good y excellent. - remotePublisherTransport.networkConditionReason (Cadena) — Motivo principal que afecta al estado de la red del editor remoto. Los valores posibles son: none, unknown, bandwidth y packetLoss. - networkDegradationSource (Cadena) — En caso de deterioro de la red, indica qué lado lo ha provocado. Los valores posibles son: none, bothOrUnclear, local y remote.

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

Devoluciones:

getStyle() → {Object}

Devuelve un objeto que contiene las propiedades que definen los controles actuales de la interfaz de usuario del Suscriptor. Puedes modificar las propiedades de este objeto y pasar el objeto a la setStyle() método del objeto Subscriber. (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 suscriptor.

isAudioBlocked()

Indica si el audio del suscriptor está bloqueado debido a la política de reproducción automática de audio del navegador.

Véase: : - OT.desbloquearAudio() - El audioBloqueado y audio sin restricciones Eventos para suscriptores - El style.audioBlockedDisplayMode propiedad del options del Session.subscribe() método

isSubscribedToCaptions()

Si el suscriptor está recibiendo subtítulos. Esta propiedad puede cambiar si el suscriptor activa o desactiva los subtítulos (mediante la llamada a la función Subscriber.subscribeToCaptions() método). El valor por defecto es el hasCaptions propiedad del editor del flujo en el momento de la inicialización del suscriptor (véase el Propiedad Stream.hasCaptions).

Puedes establecer el valor inicial de esta propiedad configurando el subscribeToCaptions propiedad de la options del Session.subscribe() método.

Véase: : - Subscriber.subscribeToCaptions() - Session.subscribe()

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.

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

restrictFrameRate(valor) → {Suscriptor}

Limita la frecuencia de fotogramas de la transmisión de vídeo del suscriptor cuando se pasa true. Cuando pasas false, la frecuencia de fotogramas de la transmisión de vídeo no está limitada.

Cuando se limita la frecuencia de fotogramas, el fotograma de vídeo del suscriptor se actualizará una vez o menos por segundo.

Esta función solo está disponible en las sesiones que utilizan el enrutador multimedia de la Video API de Vonage (sesiones con el modo multimedia (configurado en «routed»), pero no en sesiones cuyo modo multimedia esté configurado en «relayed». En sesiones de tipo «relayed», la llamada a este método no tiene ningún efecto.

La restricción de la frecuencia de imagen del abonado tiene las siguientes ventajas:

  • Reduce el uso de la CPU.
  • Reduce el ancho de banda de la red que se consume.
  • Te permite suscribirte a más flujos simultáneamente.

La reducción de la frecuencia de fotogramas de un suscriptor no afecta a la frecuencia de fotogramas del vídeo en otros clientes.

Parámetros:
Nombre Tipo Descripción
value Booleano Si se debe limitar la frecuencia de fotogramas del vídeo del suscriptor (true) o no (false).
Devoluciones:

El objeto «Subscriber». Esto te permite encadenar llamadas a métodos, como en el siguiente ejemplo:

mySubscriber.restrictFrameRate(false).subscribeToAudio(true);

setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise}

Establece un MediaProcessorConnector para la pista de audio del suscriptor. Un suscriptor 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 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.

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

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

setAudioVolume(valor) → {Suscriptor}

Establece el volumen de audio del suscriptor, entre 0 y 100.

Puedes configurar el volumen inicial al llamar a la función Session.subscribe() método. Pasa un audioVolume propiedad del properties parámetro del método.

Parámetros:
Nombre Tipo Descripción
value Numbers El volumen del audio, entre 0 y 100.

Véase: : - getAudioVolume() - Session.subscribe()

Devoluciones:

El objeto «Subscriber». Esto te permite encadenar llamadas a métodos, como en el siguiente ejemplo:

mySubscriber.setAudioVolume(50).setStyle(newStyle);

setCaptionsTranslationLanguage(código de idioma)

Establece el idioma preferido para la traducción de los subtítulos de este suscriptor.

Esta es una función en fase beta privada.

Parámetros:
Nombre Tipo Descripción
langCode Código de idioma de los subtítulos null El código de idioma al que se deben traducir los subtítulos. Omitir null utilizar el idioma predeterminado de la sesión (sin traducción).

setPreferredFrameRate(frameRate) → {Promise.<void>}

Establece la frecuencia de fotogramas preferida del vídeo del suscriptor.

Reducir la frecuencia de fotogramas preferida disminuye la calidad del vídeo en el cliente suscriptor, pero también reduce el uso de la red y de la CPU. Quizá te interese utilizar una frecuencia de fotogramas más baja para un suscriptor de una transmisión que sea menos importante que otras transmisiones.

Este método solo se aplica al suscribirse a una transmisión que utilice el función de vídeo escalable. Hay vídeo escalable disponible:

  • Solo en las sesiones que utilizan el enrutador multimedia de la Video API de Vonage (sesiones con el medios modo enrutado).
  • Solo para transmisiones publicadas por clientes que admitan vídeo escalable: clientes que utilicen el SDK para iOS de la Video API de Vonage (en determinados dispositivos), el SDK para Android de la Video API de Vonage (en determinados dispositivos) u OpenTok.js en Chrome y Safari.

En las transmisiones que no utilizan vídeo escalable, llamar a este método no tiene ningún efecto.

Nota: La frecuencia de fotogramas de las transmisiones de vídeo escalables se ajusta automáticamente para cada suscriptor, en función de las condiciones de la red y del uso de la CPU, incluso si no se invoca este método. Invoca este método si deseas establecer una frecuencia de fotogramas máxima para este suscriptor.

No todas las frecuencias de fotogramas están disponibles para un suscriptor. Cuando estableces la frecuencia de fotogramas preferida para el suscriptor, OpenTok.js selecciona la mejor frecuencia de fotogramas disponible que se ajuste a tu configuración. Las frecuencias de fotogramas disponibles dependen del valor de la propiedad del objeto «Subscriber» stream.frameRate propiedad, que representa el valor máximo disponible para la transmisión. Las velocidades de fotogramas reales disponibles dependen, de forma dinámica, de los recursos de red y de CPU de los que dispongan el emisor y el receptor.

Puedes configurar la frecuencia de fotogramas preferida inicial mediante el ajuste de la preferredFrameRate propiedad de la options que se pasa al objeto Session.subscribe() método.

Parámetros:
Nombre Tipo Descripción
frameRate Numbers Establece este valor en la frecuencia de fotogramas deseada (en fotogramas por segundo). Establece este valor en null para eliminar la frecuencia de fotogramas preferida, y el cliente utilizará la frecuencia de fotogramas más alta disponible.

Véase: : - Subscriber.setPreferredResolution() - Session.subscribe()

Devoluciones:

Una promesa que se resuelve cuando la frecuencia de fotogramas preferida se ha aplicado correctamente, o que se rechaza con un Error en las siguientes condiciones:

  • El suscriptor se ha eliminado o aún no se ha conectado a un editor.
  • La sesión utiliza el modo multimedia entre pares, que no admite esta función.
  • La actualización del flujo subyacente falla.

setPreferredResolution(resolution) → {Promise.<void>}

Establece la resolución preferida del vídeo del suscriptor.

Reducir la resolución preferida disminuye la calidad del vídeo en el cliente suscrito, pero también reduce el uso de la red y de la CPU. Es posible que desee utilizar una resolución más baja en función de las dimensiones del vídeo del suscriptor en la página web. También puede optar por utilizar una resolución para un suscriptor de una transmisión que sea menos importante (y más pequeña) que otras transmisiones.

Este método solo se aplica al suscribirse a una transmisión que utilice el función de vídeo escalable. Hay vídeo escalable disponible:

  • Solo en las sesiones que utilizan el enrutador multimedia de la Video API de Vonage (sesiones con el medios modo enrutado).
  • Solo para transmisiones publicadas por clientes que admitan vídeo escalable: clientes que utilicen el SDK para iOS de la Video API de Vonage (en determinados dispositivos), el SDK para Android de la Video API de Vonage (en determinados dispositivos) u OpenTok.js en Chrome y Safari.

En las transmisiones que no utilizan vídeo escalable, llamar a este método no tiene ningún efecto.

Nota: La resolución de las transmisiones de vídeo escalables se ajusta automáticamente para cada suscriptor, en función de las condiciones de la red y del uso de la CPU, incluso si no se invoca este método. Invoca este método si deseas establecer una resolución máxima para este suscriptor.

En las transmisiones que no utilizan vídeo escalable, llamar a este método no tiene ningún efecto.

No todas las velocidades de fotogramas están disponibles para un suscriptor. Cuando estableces la resolución preferida para el suscriptor, OpenTok.js selecciona la mejor resolución disponible que se ajuste a tu configuración. Las resoluciones disponibles dependen del valor de la propiedad del objeto «Subscriber» stream.resolution propiedad, que representa la resolución máxima disponible para la transmisión. Las resoluciones reales disponibles dependen, de forma dinámica, de los recursos de red y de CPU de los que dispongan el emisor y el suscriptor.

Puedes configurar la resolución preferida inicial que se utilizará estableciendo el preferredResolution propiedad del options que se pasa al objeto Session.subscribe() método.

Nota: Si configuras la resolución preferida inicial en "auto" al llamar Session.subscribe(), llamando a setPreferredResolution() se interrumpe sin mostrar ningún mensaje, y recibirás una advertencia.

Parámetros:
Nombre Tipo Descripción
resolution Objeto Establece esto como un objeto con dos propiedades: width y height (ambos números), como por ejemplo {width: 320, height: 240}. Ajústelo a null para eliminar la resolución preferida, y el cliente utilizará la resolución más alta disponible.

Véase: : - Subscriber.setPreferredFrameRate() - Session.subscribe()

Devoluciones:

Una promesa que se resuelve cuando la resolución preferida se ha aplicado correctamente, o se rechaza con un Error en las siguientes condiciones:

  • El suscriptor se inicializó con preferredResolution: 'auto'.
  • El valor 'auto' se pasa directamente a este método.
  • El suscriptor se ha eliminado o aún no se ha conectado a un editor.
  • La sesión utiliza el modo multimedia entre pares, que no admite esta función.

setStyle(estilo, valor) → {Suscriptor}

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

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:

  • audioBlockedDisplayMode (Cadena) — Indica si se debe mostrar el icono predeterminado de audio bloqueado en «Suscriptores» (en los navegadores en los que se bloquea la reproducción automática de audio). Los valores posibles son: "auto" (el icono predeterminado se muestra cuando el audio está desactivado) y "off" (el icono no se muestra). Configúralo en "off" si quieres mostrar tu propio elemento de interfaz de usuario que indique que el audio está bloqueado. En respuesta a un elemento HTML que envía un click evento, puedes llamar a la OT.desbloquearAudio() Método para iniciar la reproducción de audio en este y en todos los demás suscriptores bloqueados.
  • 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).
  • 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 subscribeToVideo(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 Subscriber.getImgData() método (por ejemplo, podrías llamar a mySubscriber.setStyle("backgroundImageURI", mySubscriber.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 altavoz. 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).
  • videoDisabledDisplayMode (Cadena) — Indica si se deben mostrar el indicador de vídeo desactivado y los iconos de advertencia de vídeo desactivado para un suscriptor. 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. 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 la mala calidad de la transmisión), "off" (no mostrar los iconos), y "on" (mostrar los iconos).

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

mySubscriber.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:

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

Puedes configurar los ajustes iniciales al llamar a la función Session.subscribe() 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.subscribe()

Devoluciones:

El objeto «Subscriber».

setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise}

Establece un MediaProcessorConnector para la pista de vídeo del suscriptor. Un suscriptor 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.

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 y WebView para iOS. Puedes comprobar si el cliente es compatible con esta función llamando a la función OT.hasMediaProcessorSupport('video') método.

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

subscribeToAudio(valor) → {Suscriptor}

Activa y desactiva el audio. Inicia la suscripción al audio (si está disponible y aún no se está suscrito a él) cuando el value es true; deja de suscribirse al audio (si está suscrito en ese momento) cuando el value es false.

Nota: Este método solo afecta a la reproducción local del audio. No tiene ningún impacto en el audio de otras conexiones suscritas a la misma transmisión. Si el editor no está publicando audio, activar el audio del suscriptor no tendrá ningún efecto práctico.

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

Véase: : - subscribeToVideo() - Session.subscribe() - StreamPropertyChangedEvent

Devoluciones:

El objeto «Subscriber». Esto te permite encadenar llamadas a métodos, como en el siguiente ejemplo:

mySubscriber.subscribeToAudio(true).subscribeToVideo(false);

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

Activa y desactiva los subtítulos. Inicia la suscripción a los subtítulos (si están disponibles y actualmente no se está suscrito a ellos) cuando el value es true; deja de estar suscrito a los subtítulos (si actualmente está suscrito) cuando el value es false.

El valor inicial se puede establecer configurando el subscribeToCaptions propiedad de la options del Session.subscribe() método. El valor por defecto es el hasCaptions propiedad del editor del flujo en el momento de la inicialización del suscriptor (véase el Propiedad Stream.hasCaptions).

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

Parámetros:
Nombre Tipo Descripción
value Booleano Si quieres empezar a recibir los subtítulos (true) o no (false).

Véase: : - isSubscribedToCaptions() - leyendaRecibido evento - StreamPropertyChangedEvent - Session.subscribe()

Devoluciones:

Una promesa que se resuelve cuando el servidor ha confirmado la actualización del canal de subtítulos. La promesa se rechaza si se produce un error al enviar la actualización.

subscribeToVideo(valor) → {Suscriptor}

Activa y desactiva el vídeo. Inicia la suscripción al vídeo (si está disponible y aún no se está suscrito a él) cuando el value es true; deja de suscribirse al vídeo (si ya está suscrito) cuando el value es false.

Nota: Este método solo afecta a la reproducción local del vídeo. No tiene ningún impacto en el vídeo de otras conexiones suscritas a la misma transmisión. Si el editor no está publicando vídeo, activar el vídeo del suscriptor no tendrá ningún efecto práctico.

Parámetros:
Nombre Tipo Descripción
value Booleano Si te conviene empezar a suscribirte a los vídeos (true) o no (false).

Véase: : - subscribeToAudio() - Session.subscribe() - StreamPropertyChangedEvent

Devoluciones:

El objeto «Subscriber». Esto te permite encadenar llamadas a métodos, como en el siguiente ejemplo:

mySubscriber.subscribeToVideo(true).subscribeToAudio(false);

videoHeight() → {Number}

Devuelve la altura real recibida, en píxeles, del vídeo del suscriptor. Esto refleja la resolución descodificada del flujo de vídeo entrante, que puede diferir de la resolución de captura del editor debido a la adaptación de la red o de la CPU, o a la selección de la capa de vídeo escalable. Utiliza este método para observar la resolución real que se está reproduciendo para este suscriptor.

Para obtener más información sobre el control de la calidad de los cursos de agua, consulta el Observabilidad del cliente guía del desarrollador.

Véase: : - Subscriber.getStats()

Devoluciones:

La altura real recibida, en píxeles, del vídeo del suscriptor.

videoWidth() → {Number}

Devuelve el ancho real recibido, en píxeles, del vídeo del suscriptor. Esto refleja la resolución decodificada del flujo de vídeo entrante, que puede diferir de la resolución de captura del editor debido a la adaptación de la red o la CPU, o a la selección de la capa de vídeo escalable. Utiliza este método para observar la resolución real que se está reproduciendo para este suscriptor.

Para obtener más información sobre el control de la calidad de los cursos de agua, consulta el Observabilidad del cliente guía del desarrollador.

Véase: : - Subscriber.getStats()

Devoluciones:

La anchura real recibida, en píxeles, del vídeo del suscriptor.

Eventos

audioBloqueado

Se envía cuando el audio del suscriptor queda bloqueado debido a la política de reproducción automática del navegador.

Véase: : - OT.desbloquearAudio() - Subscriber.isAudioBlocked() - El audio sin restricciones evento - El style.audioBlockedDisplayMode propiedad del options del Session.subscribe() (método)

audioLevelUpdated

Se envía periódicamente para indicar el nivel de audio del suscriptor. 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 suscriptor. 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;
subscriber.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('subscriberMeter').value = logLevel;
});

Este ejemplo muestra el algoritmo que utiliza el indicador de nivel de audio predeterminado que se muestra en un suscriptor de solo audio.

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

audio sin restricciones

Se envía cuando se desbloquea el audio del suscriptor tras haber estado en pausa debido a la política de reproducción automática del navegador.

El audio del abonado se desbloquea cuando ocurre alguna de las siguientes situaciones:

  • El usuario hace clic en el icono predeterminado de reproducción de audio del suscriptor
  • El OT.desbloquearAudio() El método se invoca en respuesta a la activación de un elemento HTML que envía un click evento (si has desactivado el icono predeterminado de reproducción de audio)
  • El cliente local obtiene acceso a la cámara o al micrófono (por ejemplo, tras una llamada satisfactoria a OT.initPublisher()).

Véase: : - OT.desbloquearAudio() - El audioBloqueado evento - El style.audioBlockedDisplayMode propiedad del options del Session#subscribe() (método)

leyendaRecibido

Se envía cuando el abonado recibe una leyenda del servicio de transcripción. Primero debes llamar al Subscriber.subscribeToCaptions() método (y el emisor de la transmisión debe estar emitiendo subtítulos) antes de recibir captionReceived eventos.

Véase: : - CaptionReceivedEvent - Subtítulos en directo

conectado

Se envía cuando se reanuda la transmisión del suscriptor, después de que este envíe un disconnected evento.

Véase: : - evento aislado - Evento

destruido

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

Para evitar que el suscriptor sea eliminado del DOM cuando se destruya el flujo, hay que estar atento al Evento «streamDestroyed» enviado por el objeto Session. El streamDestroyed El evento enviado por el objeto Session se puede cancelar, y al llamar a la función preventDefault() El método del objeto de evento evita que los suscriptores del flujo sean eliminados del DOM HTML.

Véase: : - Evento

desconectado

Se envía cuando se ha interrumpido la transmisión del suscriptor.

En respuesta a este suceso, quizá te interese mostrar una notificación en la interfaz de usuario para informar al usuario de que la transmisión de audio y vídeo se ha desconectado temporalmente y de que la aplicación está intentando volver a conectarse a ella.

Si el cliente se vuelve a conectar a la transmisión, el objeto «Subscriber» envía un connected evento. De lo contrario, si el cliente no puede volver a conectarse al flujo, el objeto Subscriber envía un destroyed evento.

Véase: : - evento relacionado - Evento

encryptionSecretMatch

Se envía cuando es posible descifrar los datos multimedia de un suscriptor porque las claves de cifrado coinciden. Esto solo se envía cuando anteriormente se había producido una discrepancia entre las claves.

Véase: : - Evento - encryptionSecretMismatch evento - OT.initSession - session.setEncryptionSecret

encryptionSecretMismatch

Se envía cuando no es posible descifrar el contenido multimedia de un suscriptor porque las claves de cifrado no coinciden. En este caso, el usuario seguirá suscrito a la transmisión, pero el vídeo aparecerá en negro y el audio estará silenciado. Se considera una buena práctica explicar al usuario por qué no puede ver el contenido multimedia.

Véase: : - Evento - encryptionSecretMatch evento - OT.initSession - session.setEncryptionSecret

mediaStreamAvailable

Se envía cuando MediaStream está disponible.

Véase: : - Evento

cambio en el estado de la red

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

La implementación actual activa este evento únicamente cuando las condiciones de red han cambiado en cualquiera de las dos partes.

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 suscriptor. 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"
  • stats — Objeto que contiene una instantánea completa de las estadísticas actuales, estructurado de forma idéntica al objeto devuelto por una getStats() la invocación, incluyendo el estado de la red y el motivo de los problemas de transporte o de red, tanto locales como remotos, así como el origen del deterioro de la red.

Véase: : - Evento

qualityScoreChanged

Se envía cuando cambia la puntuación de la calidad de audio o de vídeo. Las puntuaciones son un valor heurístico que representa la experiencia esperada del suscriptor. Los valores oscilan entre 5 y 1, y los valores enteros se corresponden con «Excelente» | «Bueno» | «Aceptable» | «Deficiente» | «Malo».

Véase: : - Evento de cambio en la puntuación de calidad

videoDimensionsChanged

Se envía cuando el stream.videoDimensions La propiedad la actualiza el editor. Esto ocurre cuando el elemento de vídeo local del editor detecta un cambio en las dimensiones y notifica la actualización a todos los participantes de la sesión. Ejemplos de lo que puede provocar esto:

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

Nota: estas dimensiones corresponden a las indicadas por la editorial captura resolución (lo que el emisor codifica y envía), no la resolución realmente descodificada por este suscriptor. La resolución descodificada puede variar debido a la adaptación de la red o a la codificación de vídeo escalable. Utilizar N.º de suscriptor#ancho del vídeo y N.º de suscriptor#altura del vídeo para la resolución realmente recibida.

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

vídeo desactivado

Se envía cuando el vídeo está desactivado para el suscriptor.

El reason La propiedad define el motivo por el que se ha desactivado el vídeo. Se puede establecer en uno de los siguientes valores:

  • "codecNotSupported" — El navegador del cliente no es compatible con el códec de vídeo utilizado por la transmisión. Por ejemplo, en Safari, si te conectas a un sesión enrutada en un Video API de Vonage (excepto Safari) proyecto, y si intentas suscribirte a un flujo que incluya vídeo, el Suscriptor enviará un videoDisabled evento con el reason propiedad establecida en "codecNotSupported". (En las sesiones enrutadas de un proyecto que no sea de Safari, los flujos utilizan el códec de vídeo VP8, que no es compatible con Safari.) El elemento «subscriber» también mostrará el mensaje «Formato de vídeo no compatible». (Véase OT.getSupportedCodecs().)

  • "publishVideo" — La editorial dejó de publicar vídeos tras recibir una llamada publishVideo(false).

  • "quality" — El Vonage Video Media Router o el cliente de publicación dejó de enviar vídeo al suscriptor debido a cambios en la calidad de la transmisión provocados por una deterioro de la conectividad.

    En las sesiones enrutadas, el origen de este evento puede ser el Vonage Video Media Router (recaída de audio del abonado) o el cliente emisor (recaída de audio del emisor). En ambos casos, la transmisión de vídeo se interrumpe específicamente para el abonado afectado, mientras que la transmisión de audio (si la hay) continúa sin interrupciones. Cuando el origen es el cliente de publicación, el evento va seguido de un streamPropertyChanged Evento enviado por el objeto de sesión que indica que el canal de vídeo al que se está suscrito ya no está activo. En general, este evento adicional indica un deterioro de la red por parte del editor; sin embargo, las métricas comunicadas por el suscriptor pueden influir en las decisiones de recambio del editor, lo que puede complicar la determinación del origen exacto del deterioro.

    En las sesiones retransmitidas, el "quality" El evento se activa exclusivamente debido a la lógica interna de recambio de audio del editor (Publisher Audio Fallback). Este evento no va seguido de un streamPropertyChanged evento que indica que el vídeo está inactivo, ya que es posible que otros suscriptores con mejores condiciones de red sigan recibiendo la transmisión. Ten en cuenta que, en las sesiones retransmitidas, aunque los eventos de recambio de audio se originan en el emisor, la degradación de la red puede producirse tanto en el lado del emisor como en el del suscriptor.

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

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

    Por defecto, el Suscriptor 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 llamando a la función setStyle() método del suscriptor, estableciendo el videoDisabledDisplayMode propiedad (o también puedes establecer el estilo al llamar a la Session.subscribe() método, configurando el style propiedad de la properties parámetro).

    Puedes controlar el comportamiento de la opción de reserva de solo audio configurando el audioFallback propiedad del objeto pasado a OT.initPublisher() en el cliente de publicación. De forma predeterminada, la opción de audio alternativo del suscriptor está activada (excepto cuando se utiliza la función de compartir pantalla, en cuyo caso está desactivada de forma predeterminada) y la opción de audio alternativo del editor está desactivada. Para cambiar esto, configura audioFallback.subscriber a false para desactivar la alternativa de reserva del suscriptor, o configurar audioFallback.publisher a true para habilitar la opción de reserva del editor. (Véase OT.initPublisher().)

  • "subscribeToVideo" — El suscriptor se ha dado de alta o ha cancelado su suscripción a un servicio de vídeo llamando al subscribeToVideo(false).

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

videoDesactivarAviso

Se envía cuando el enrutador multimedia de la Video API de Vonage detecta 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 suscriptor desactiva el vídeo y envía un videoDisabled evento.

De forma predeterminada, el Suscriptor 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 y configurando el videoDisabledDisplayMode propiedad (o puedes establecer el estilo al llamar al Session.subscribe() método y configurando el style propiedad de la properties parámetro).

Esta función solo está disponible en las sesiones que utilizan el enrutador multimedia de la Video API de Vonage (sesiones con el modo multimedia (configurado en «enrutado»), no en sesiones con el modo multimedia configurado en «retransmitido».

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

videoAdvertencia desactivada

Se envía cuando el enrutador multimedia de la Video API de Vonage determina que la calidad de la transmisión ha mejorado hasta el punto de que la desactivación del vídeo no supone un riesgo inmediato. Este evento se envía después de que el objeto «Suscriptor» envíe un videoDisableWarning evento.

Esta función solo está disponible en las sesiones que utilizan el enrutador multimedia de la Video API de Vonage (sesiones con el modo multimedia (configurado en «enrutado»), no en sesiones con el modo multimedia configurado en «retransmitido».

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

videoElementCreated

Se activa cuando se crea el elemento de vídeo del suscriptor. Añade un oyente para este evento cuando configure el insertDefaultUI opción de false en la llamada a la Session.subscribe() método. En element La propiedad del objeto de evento es una referencia al Suscriptor 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 object) 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 «Subscriber».

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

videoEnabled

Se envía cuando el enrutador multimedia de la Video API de Vonage reanuda el envío de vídeo al abonado después de que el vídeo se hubiera desactivado previamente.

El reason La propiedad define el motivo por el que se activó el vídeo. Se puede establecer en uno de los siguientes valores:

  • "codecChanged" — El vídeo para suscriptores se ha activado tras un cambio de códec a partir de uno incompatible.

  • "publishVideo" — La editorial comenzó a publicar vídeos llamando a publishVideo(true).

  • "quality" — El enrutador multimedia de la Video API de Vonage reanudó el envío de vídeo al abonado en función de los cambios en la calidad de la transmisión. Esta función del enrutador multimedia de la Video API de Vonage hace que el abonado interrumpa la transmisión de vídeo cuando la conectividad se deteriora y, a continuación, reanude la transmisión de vídeo si la calidad de la misma mejora.

    Esta función solo está disponible en las sesiones que utilizan el enrutador multimedia de la Video API de Vonage (sesiones con el modo multimedia (configurado en «enrutado»), no en sesiones con el modo multimedia configurado en «retransmitido».

  • "subscribeToVideo" — El suscriptor se ha dado de alta o ha cancelado su suscripción a un servicio de vídeo llamando al subscribeToVideo(false).

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

videoQualityChanged

Se envía cuando se detecta una interrupción en la calidad del vídeo —una pausa— o un cambio de códec.

Las bloqueos se registran internamente y se muestran a través de estadísticas, pero no se activa ningún evento por cada bloqueo debido a su corta duración y a su elevada frecuencia potencial.

Un evento solo se activa cuando se detecta una pausa (por ejemplo, cuando no se reproduce ningún fotograma durante más de 5 segundos), ya que esto supone una interrupción más significativa en la reproducción multimedia.

Este evento se diferencia de videoDisabled y videoEnabled Eventos de suscriptor en los que se notifican cambios relevantes en la calidad del vídeo. videoDisabled y videoEnabled «only» 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 audio alternativo). Por el contrario, este evento proporciona información de diagnóstico sobre las causas de la pérdida de calidad, como el número de congelaciones y pausas, así como estadísticas actualizadas.

Este evento tiene en cuenta todo tipo de interrupciones de vídeo que duren 5 segundos o más. Esto significa que, en el caso concreto de la conmutación a audio o de los cambios en las propiedades de la transmisión (como la desactivación del vídeo), además de activar el videoEnabled y videoDisabled En estos casos, la interrupción también se registra como una pausa en las estadísticas de vídeo, y se activará el evento correspondiente de cambio de calidad por interrupción del vídeo una vez que se restablezca la transmisión.

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

  • "videoInterruption" — Indica que se ha detectado un nuevo evento de pausa
  • "codecChange" — Indica que ha cambiado el códec de vídeo

El stats 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, incluyendo pausas y congelaciones, si las hay.

Véase: : - Evento