Propiedades | objeto de propiedades | Métodos | Eventos

El OTPublisher El componente inicializará un editor y publicará en la sesión especificada al montarse. Para eliminar el editor, desmonta el OTPublisher componente. Ten en cuenta que la vista del editor no se elimina a menos que desmonte específicamente el OTPublisher componente.

Añade el componente OTPublisher como elemento secundario del componente OTSession:

class App extends Component {
  constructor(props) {
    super(props);

    this.publisherProperties = {
      publishAudio: true,
      publishVideo: false,
      publishCaptions: true,
      cameraPosition: 'front'
    };

    this.publisherEventHandlers = {
      streamCreated: event => {
        console.log('Publisher stream created!', event);
      },
      streamDestroyed: event => {
        console.log('Publisher stream destroyed!', event);
      }
    };
  }

  render() {
    return (
      <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token">
        <OTPublisher
          properties={this.publisherProperties}
          eventHandlers={this.publisherEventHandlers}
          style={{ height: 100, width: 100 }}
        />
      </OTSession>
    );
  }
}

Atrezo

El componente OTPublisher tiene las siguientes propiedades, todas ellas opcionales:

  • sessionId (Cadena) -- El identificador de sesión de OpenTok. Se rellena automáticamente al envolver OTPublisher con OTSession, por lo que, por lo general, no es necesario configurar esta propiedad para el OTPublisher.

  • properties (Objeto) -- Opciones para la instancia del editor. Consulte la siguiente sección, objeto de propiedades. En properties El objeto se utiliza para la configuración inicial del Publisher. El OTPublisher El objeto supervisa los cambios que se producen en algunas claves del properties objeto, y realiza los cambios necesarios. Actualmente, estos son:

    • cameraPosition: establece la cámara en «delante» o «detrás».

    • publishAudio -- Activa el audio (true) o desactivado false.

    • publishVideo -- Activa el vídeo (true) o desactivado false.

    • publishCaptions -- Activa o desactiva los subtítulos (true) o desactivado false para la transmisión publicada.

  • eventHandlers (Objeto) -- Un objeto que contiene pares clave-valor con los nombres de los eventos y las funciones de devolución de llamada para los controladores de eventos. Véase Eventos.

objeto de propiedades

El properties El objeto pasado al objeto OTPublisher tiene las siguientes propiedades:

  • permitir la captura de audio con el sonido silenciado (Booleano) Si se establece en «false», el micrófono se apagará automáticamente cuando el emisor haya silenciado su audio. El micrófono se volverá a encender automáticamente cuando el emisor active el sonido. Si se establece en «true», el micrófono permanecerá siempre encendido, incluso cuando el emisor haya silenciado su audio. El valor por defecto es «false».

  • velocidad de bits de audio (Número) -- La tasa de bits deseada para el audio publicado, en bits por segundo. El rango de valores admitido es de 6.000 a 510.000. (Se ignoran los valores no válidos.) Establece este valor para habilitar el audio de alta calidad (o para reducir el uso de ancho de banda con audio de menor calidad).

    A continuación se indican los ajustes recomendados:

    • 8.000 - 12.000 para voz de banda estrecha (NB)
    • 16.000 - 20.000 para voz de banda ancha (WB)
    • Entre 28 000 y 40 000 para la voz en banda completa (FB)
    • 48.000 - 64.000 para música de banda completa (FB)
    • 64 000 - 128 000 para música en estéreo de banda completa (FB)

    El valor por defecto es 40 000.

  • audioFallbackEnabled (Objeto) —- Configuración para el función de audio alternativo. En audioFallback incluye dos propiedades booleanas:

    • publisher - Si se activa (true) o desactivar (false) Alternativa de audio del editor. Cuando la alternativa de audio del editor está activada, si la calidad de la transmisión se degrada significativamente (por ejemplo, debido a las condiciones de la red), el editor desactiva el vídeo para preservar la calidad del audio. El valor por defecto es false (La opción de audio alternativo del editor está desactivada).

    • subscriber - Si se activa (true) o desactivar (false) alternativa de audio para el suscriptor. Esta configuración solo se aplica en sesiones enrutadas (sesiones que utilizan el OpenTok Media Router). La función de recambio de audio del suscriptor no es compatible en sesiones retransmitidas. Cuando la función de recambio de audio del suscriptor está activada, si el OpenTok Media Router detecta que la calidad de una transmisión se ha degradado significativamente para un suscriptor concreto, desactiva el vídeo de dicho suscriptor con el fin de preservar la calidad del audio. Para las transmisiones que utilizan una cámara como fuente de vídeo, la configuración predeterminada es true (la función de audio alternativo está activada). La configuración predeterminada es false (la función de audio alternativo está desactivada) para las transmisiones de pantalla compartida ( que tienen la videoSource propiedad establecida en «screen» en el componente OTPublisher). Esta configuración sustituye a la audioFallbackEnabled propiedad, que quedará obsoleta.

  • audioFallbackEnabled (Booleano) —- Obsoleto. Se ha sustituido por el subscriber propiedad del audioFallback propiedad (véase más arriba).

  • pista de audio (Booleano) -- Si esta propiedad se establece en «false», el subsistema de audio no se inicializará para el editor, y al establecer el publishAudio Esta propiedad no tendrá ningún efecto. Si tu aplicación no requiere el uso de audio, se recomienda configurar esta propiedad en lugar de utilizar la propiedad `publishAudio`, que solo desactiva temporalmente la pista de audio.

  • posición de la cámara (Cadena) -- La posición preferida de la cámara. Al configurar esta propiedad, si el cambio es posible, el editor utilizará la cámara con la posición especificada. Los valores válidos son «front» (por defecto) y «back».

  • cámaraLinterna (Booleano) -- El modo de linterna preferido para la cámara. Al configurar esta propiedad se indica si el editor debe activar (true) o desactivar (false, que es la opción predeterminada) la luz de la cámara, cuando esté disponible. Ten en cuenta que se trata de una preferencia y que puede que no se aplique si la cámara activa no admite la función de luz (por ejemplo, la cámara frontal no suele admitir la función de luz).

  • factor de zoom de la cámara (Número) -- El factor de zoom (relación) preferido para la cámara. Un valor de 1,0 indica que no hay zoom (vista predeterminada). El valor oscila entre 0,5 y el factor de zoom máximo. Los valores entre 0,5 y 1,0 corresponden a un gran angular (alejamiento) y los valores entre 1,0 y el factor de zoom máximo corresponden a un acercamiento. El factor de zoom real aplicado se limita automáticamente al rango admitido por la configuración de la cámara activa; si la cámara no admite el gran angular, los factores de zoom establecidos por debajo de 1,0 no surtirán efecto y no se aplicará ningún zoom. En el caso de valores superiores al factor de zoom máximo admitido por la cámara, el factor de zoom se establecerá en el valor máximo.

  • preferencia de degradación (DegradationPreference) -- La política de degradación de vídeo preferida en condiciones de ancho de banda o CPU limitados.

  • activarDtx (Booleano) - Si se debe activar Opus DTX. El valor por defecto es false. Si se establece este valor en «true», se puede reducir el consumo de ancho de banda en las transmisiones que presentan largos periodos de silencio.

  • frecuencia de fotogramas (Número) - La frecuencia de fotogramas deseada, en fotogramas por segundo, del vídeo. Los valores válidos son 30, 15, 7 y 1. La transmisión publicada utilizará el valor más cercano que admita el cliente de publicación. La frecuencia de fotogramas puede diferir ligeramente del valor establecido, dependiendo del dispositivo del cliente. Además, el vídeo solo utilizará la frecuencia de fotogramas deseada si la configuración del cliente la admite.

  • maxVideoBitrate (Número) - La tasa de bits máxima de la transmisión de vídeo del editor, en bits por segundo (bps). Esta propiedad establece un límite máximo explícito para la tasa de bits del vídeo del editor, entre 5.000 y 10.000.000. El maxVideoBitrate La propiedad tiene prioridad sobre la videoBitratePreset propiedad. Si se definen ambas, solo la maxVideoBitrate Se utiliza la propiedad. Para obtener más información, consulta esta documentación.

  • nombre (Cadena) -- Una cadena que se asociará a la transmisión de este emisor. Esta cadena aparece en la parte inferior de los vídeos del emisor y en la parte inferior de los vídeos de los suscriptores asociados a la transmisión publicada. Si no se especifica ningún valor, el nombre se establece como el nombre del dispositivo.

  • códecs de vídeo preferidos (PreferredVideoCodecs) -- Prioridad de los códecs de vídeo preferidos para la publicación. Se puede establecer en «automático» o en una lista de códecs de vídeo ordenados por orden de preferencia. Los códecs de vídeo compatibles son «vp8», «vp9» y «h264». Los códecs de vídeo distinguen entre mayúsculas y minúsculas y, para que sean válidos, deben ser «vp8», «vp9» o «h264». Establece el valor en «automático» para que el SDK seleccione el orden más adecuado. Si se omite, el SDK utiliza la configuración predeterminada del proyecto. Si se incluyen códecs de vídeo no válidos en la matriz, se ignorarán y se dará prioridad a los códecs de vídeo válidos en el orden en que aparecen en la lista. Si se pasa una matriz vacía, se proporciona una cadena vacía o se proporciona una cadena distinta de «automático», el SDK utilizará la configuración predeterminada del proyecto. Para obtener más información, consulta esta documentación.

  • publicar audio (Booleano) -- Indica si se debe publicar el audio. El valor por defecto es true.

  • publicarVídeo (Booleano) -- Indica si se debe publicar el vídeo. El valor por defecto es true.

  • publicar subtítulos (Booleano) — Indica si se deben publicar los subtítulos. Ten en cuenta que la sesión debe tener los subtítulos activados (mediante el método REST de la Video API o el SDK del servidor) y que el editor debe estar publicando audio. Para obtener más información, consulta el Guía para desarrolladores de Live Captions.

  • publishSenderStats (Booleano) - Activa un canal de estadísticas del remitente para el editor. Actualmente, esta función solo es compatible con llamadas con más de dos participantes. Para obtener más información, consulta esta documentación.

  • scalableScreenshare (Booleano) -- Indica si se permite el uso de {vídeo escalable}(/developer/guides/scalable-video/) para un editor que comparte pantalla (true) o no (false, valor predeterminado). Esto solo se aplica a un editor que tenga el videoSource establecer en «pantalla».

  • scaleBehavior (Cadena) - Define cómo se escala el vídeo al renderizarse. Los valores admitidos son fill (por defecto) y fit. Actualmente, esta propiedad solo es compatible con iOS.

  • resolución (Cadena) - La resolución deseada del vídeo. El formato de la cadena es «anchuraxaltura», donde la anchura y la altura se expresan en píxeles. Los valores válidos son «1920x1080», «1280x720», «640x480» y «352x288». El vídeo publicado solo utilizará la resolución deseada si la configuración del cliente la admite. Algunos dispositivos y clientes no admiten todas estas configuraciones de resolución.

  • preajuste de velocidad de bits de vídeo (Cadena) - Estrategia predefinida de velocidad de bits de vídeo aplicada a la transmisión de vídeo del editor. Establece este valor en una de las siguientes cadenas: «default», «bw_saver» o «extra_bw_saver». Esta propiedad se ignora si el videoBitratePreset Se ha establecido la propiedad. Si no se ha establecido ninguna de las dos, el editor utiliza la configuración predeterminada. Para obtener más información, consulta esta documentación.

  • videoContentHint (Cadena) -- Establece la sugerencia de contenido de la pista de vídeo de la transmisión del editor. Se puede establecer en uno de los siguientes valores: «», «movimiento», «detalles» o «texto». Para obtener más información, consulta la documentación para la videoContentHint opción de la OT.initPublisher() método del SDK de OpenTok.js.

  • videoTrack (Booleano) -- Si esta propiedad se establece en «false», el subsistema de vídeo no se inicializará para el editor, y establecer la propiedad «publishVideo» no tendrá ningún efecto. Si tu aplicación no requiere el uso de vídeo, se recomienda establecer esta propiedad en lugar de utilizar la propiedad `publishVideo`, que solo desactiva temporalmente la pista de vídeo.

  • fuente del vídeo (Cadena) -- Para publicar una transmisión compartida de pantalla, establece esta propiedad en «screen». Si no se especifica ningún valor, el valor por defecto será «camera».

Métodos

getRtcStatsReport() Obtiene el informe de estadísticas de RTC del editor. Se trata de una operación asíncrona. El objeto OTPublisher envía una rtcStatsReport evento cuando estén disponibles las estadísticas de RTC del editor.

setAudioTransformers() -- Configura los transformadores de audio para el editor.

<P class="important"> <B>Importante:</B> Para utilizar este método, debes añadir la biblioteca Vonage Media Transformer a tu proyecto, por separado del SDK de OpenTok para React Native. Para obtener más información, consulta Integración con la biblioteca multimedia de Vonage. </p>

Se admite un transformador de audio: el filtro de supresión de ruido.

Este método tiene un parámetro: una matriz de objetos que definen cada transformador que se aplicará al flujo del editor. Un objeto transformador tiene dos propiedades:

  • name (Cadena) -- Establece este valor en 'NoiseSuppression'.

  • properties (Cadena) -- Establece este valor en una cadena vacía.

Para eliminar los transformadores de audio del flujo publicado, llame a la función OTPublisher.setAudioTransformers() y pasar un array vacío.

Importante: Las transformaciones multimedia, como el filtro de supresión de ruido, consumen muchos recursos y requieren dispositivos con una gran potencia de procesamiento. Se recomienda utilizar estas transformaciones únicamente en dispositivos compatibles. Consulte la siguiente documentación:

Para obtener más información sobre los transformadores, consulta Uso de la biblioteca Vonage Media Processor

setVideoTransformers() -- Establece los transformadores de vídeo para el editor.

<P class="important"> <B>Importante:</B> En la versión 2.28.0 o posterior del SDK de Vonage Video para React Native, para utilizar este método es necesario añadir la biblioteca multimedia de Vonage por separado del SDK de Vonage Video para React Native. Para obtener más información, consulta Integración con la biblioteca multimedia de Vonage. </p>

Este método tiene un parámetro: una matriz de objetos que definen cada transformador que se aplicará al flujo del editor. Un objeto transformador tiene dos propiedades:

  • name (Cadena) -- Puede ser «BackgroundBlur» (para un filtro de desenfoque de fondo) o «BackgroundReplacement» (para un filtro de sustitución de imagen de fondo).

  • properties (Cadena) -- Una cadena JSON con las propiedades del transformador de vídeo de Vonage.

    En el caso de un transformador de desenfoque de fondo, el formato del JSON es el siguiente:

    `{
       "radius" :"None"
     }`
    

    Los valores válidos para la propiedad «radius» son «None», «High» y «Low».

    Para un transformador de desenfoque de fondo personalizado, el formato del JSON es el siguiente:

    `{
      "radius": "Custom",
      "custom_radius": "value"
    }`
    

    custom_radius puede ser cualquier número entero positivo.

    En el caso de un transformador de sustitución de fondo, el formato del JSON es el siguiente:

    `{
      "image_file_path": "path/to/image"
    }`
    

    Dónde image_file_path es la ruta absoluta del archivo de una imagen local que se utilizará como fondo virtual. Los formatos de imagen compatibles son PNG y JPEG.

Para eliminar los transformadores de vídeo de la transmisión publicada, llama a la función OTPublisher.setVideoTransformers() y pasar un array vacío.

Importante: Las transformaciones multimedia, como el desenfoque del fondo y la sustitución del fondo, consumen muchos recursos y requieren dispositivos con una gran potencia de procesamiento. Se recomienda utilizar estas transformaciones únicamente en dispositivos compatibles. Consulta la siguiente documentación:

Para obtener más información sobre los transformadores, consulta Uso de la biblioteca Vonage Media Processor

Eventos

  • nivel de audio (Número) -- El nivel de audio, de 0 a 1,0. Ajusta este valor de forma logarítmica para utilizarlo en el ajuste de un elemento de la interfaz de usuario, como un indicador de volumen. Utiliza una media móvil para suavizar los datos.

  • audioNetworkStats (Objeto) — Se envía periódicamente para informar de las estadísticas de audio del editor. A Editor, Audio, Red, Estadísticas, Evento El objeto se pasa al controlador de eventos.

  • error (Objeto) -- Se envía si el editor detecta un error. Una vez enviado este mensaje, se puede considerar que el editor se ha desvinculado por completo de una sesión y puede liberarse.

  • silenciamiento forzado -- Se envía cuando un moderador ha forzado a este cliente a silenciar el audio.

  • otrnError (Objeto) -- Se envía si se produce un error en la comunicación entre la instancia del editor nativo y el componente JS.

  • rtcStatsReport (Objeto) -- Se envía cuando hay informes de estadísticas de RTC disponibles para el editor, en respuesta a la llamada a la función OTPublisher.getRtcStatsReport() método. A PublisherRtcStatsReportEvent El objeto se pasa al gestor de eventos. Este evento contiene una matriz de objetos. En el caso de una sesión enrutada (una sesión que utiliza el OpenTok Media Router), esta matriz incluye un objeto que define las estadísticas de la única secuencia multimedia de vídeo que se envía al OpenTok Media Router. En una sesión retransmitida, la matriz incluye un objeto por cada suscriptor de la secuencia publicada. Cada objeto incluye dos propiedades:

    • connectionId -- En el caso de una sesión retransmitida (en la que un emisor envía flujos multimedia individuales a cada suscriptor), este es el identificador único de la conexión del cliente.

    • jsonArrayOfReports -- Una matriz JSON con informes de estadísticas RTC para la transmisión multimedia. La estructura de la matriz JSON es similar al formato del objeto RtcStatsReport implementado en los navegadores web (véase el Documentación de Mozilla). Véase también esta documentación del W3C.

  • streamCreado (Objeto) -- Se envía cuando el editor inicia la transmisión. A evento en streaming El objeto se pasa al controlador de eventos.

  • streamDestroyed (Objeto) -- Se envía cuando el emisor detiene la transmisión. A evento en streaming El objeto se pasa al controlador de eventos.

  • vídeo desactivado -- Se envía cuando el editor deja de transmitir el vídeo debido a opción alternativa de audio del editor.

  • videoDesactivarAviso -- Se envía cuando el editor está a punto de pasar al modo de reserva de solo audio debido al deterioro de las condiciones de la red. Véase opción alternativa de audio del editor.

  • videoAdvertencia desactivada -- Se envía tras un evento «videoDisableWarning» cuando mejoran las condiciones de la red. Véase opción alternativa de audio del editor.

  • videoEnabled -- Se envía cuando el editor reanuda la transmisión de vídeo tras haberla desactivado debido a opción alternativa de audio del editor.

  • videoNetworkStats (Objeto) -- Se envía periódicamente para informar de las estadísticas de audio del editor. A PublisherVideoNetworkStatsEvent El objeto se pasa al controlador de eventos.