#include <subscriber.h>
Descripción detallada
Funciones de devolución de llamada del suscriptor.
Esta estructura es un conjunto de punteros a funciones que pueden invocarse para eventos relacionados con un suscriptor de OpenTok.
Ninguna de las llamadas de retorno se realizará en el hilo de la aplicación ni en el hilo principal, sino en un hilo interno. La aplicación debe devolver la llamada de retorno lo antes posible para evitar bloquear el hilo interno.
Documentación de campo
on_audio_data
| void(* on_audio_data) (otc_suscriptor *suscriptor, void *datos_usuario, const struct otc_audio_data *datos_de_audio) |
Se invoca periódicamente para notificar los datos de audio del abonado. Las propiedades de audio recibidas pueden cambiar dinámicamente. Las causas de estos cambios son la negociación del códec de audio, las condiciones de la red, etc. Los consumidores de los datos de audio son responsables de gestionar estos cambios de acuerdo con el caso de uso implementado (por ejemplo, el remuestreo de audio).
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. | | audio_data | Los datos de audio. |
on_audio_desactivado
| void(* on_audio_disabled) (otc_suscriptor *suscriptor, void *datos_usuario) |
Se invoca cuando se desactiva el audio del suscriptor.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. |
on_audio_enabled
| void(* on_audio_enabled) (otc_suscriptor *suscriptor, void *datos_usuario) |
Se invoca cuando se activa el audio del suscriptor.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. |
on_audio_level_updated
| void(* on_audio_level_updated) (otc_suscriptor *suscriptor, void *datos_usuario, float audio_level) |
Se invoca periódicamente para informar del nivel de audio del abonado.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. | | audio_level | El valor del nivel de audio, entre 0 y 1,0. |
on_audio_stats
| void(* on_audio_stats) (otc_suscriptor *suscriptor, void *datos_usuario, struct otc_subscriber_audio_stats (audio_stats) |
Se ejecuta periódicamente para enviar un informe con las estadísticas de audio del abonado.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. | | audio_stats | Un puntero a la estructura de estadísticas de audio. |
on_caption_text
| void(* on_caption_text) (otc_suscriptor *suscriptor, void *datos_usuario, const char *text, otc_bool is_final) |
Se invoca cuando está disponible el texto de los subtítulos de la transmisión del suscriptor.
Parámetros : | | | | --- | --- | | subscriber | La instancia del suscriptor. | | user_data | Puntero a los datos personalizados del usuario vinculados a esta estructura. | | text | Puntero al texto del pie de foto. | | is_final | Indica si un pie de foto está terminado. |
on_connected
| void(* on_connected) (otc_suscriptor *suscriptor, void *datos_usuario, const otc_stream *stream) |
Se invoca cuando la instancia se ha conectado correctamente al flujo y comienza a reproducir el contenido multimedia.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario vinculados a esta estructura. | | stream | El flujo del suscriptor. La instancia no perdura más allá de la ejecución de la función de devolución de llamada. Asegúrate de hacer una copia si vas a utilizar esta instancia más adelante. |
on_disconnected
| void(* on_disconnected) (otc_suscriptor *suscriptor, void *datos_usuario) |
Se invoca cuando se ha interrumpido la transmisión del suscriptor. Esta función de devolución de llamada solo se invoca si la función de reconexión está activada, y a continuación se invoca «on_reconnected» si la reconexión se realiza con éxito. Las interrupciones habituales, cuando la reconexión no está activada, se notifican a través de la función de devolución de llamada «on_error».
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. |
on_error
| void(* on_error) (otc_suscriptor *suscriptor, void *datos_usuario, const char *error_string, enum otc_código_de_error_de_suscriptor (error) |
Se activa cuando el abonado falla.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. | | error_string | Una cadena que contiene el mensaje de error. | | error | Valor de la enumeración del código de error. |
on_media_link_stats
| void(* on_media_link_stats) (otc_suscriptor *suscriptor, void *datos_usuario, const struct otc_subscriber_media_link_stats *media_link_stats) |
Se ejecuta periódicamente para generar informes sobre las estadísticas de enlaces multimedia del suscriptor.
Las estadísticas de enlaces de medios ofrecen una visión global del estado de la red a nivel de transporte.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. | | media_link_stats | Un puntero a la estructura de estadísticas del enlace multimedia. |
on_network_condition_changed
| void(* on_network_condition_changed) (otc_suscriptor *suscriptor, void *datos_usuario, const struct otc_subscriber_media_link_stats *media_link_stats, enumeración otc_motivo_red (razón) |
Esta función de devolución de llamada se activa cuando se detecta un cambio en las condiciones de red del suscriptor o del editor remoto.
La implementación actual activa esta llamada de retorno únicamente cuando las condiciones de red han cambiado en cualquiera de las dos partes.
El reason El parámetro indica la causa del evento y, actualmente, siempre es OTC_NETWORK_REASON_NETWORK_CONDITION_CHANGE.
Este evento se diferencia de on_video_disabled y on_video_enabled se diferencia de las demás funciones de devolución de llamada en 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 esta función de devolución de llamada para responder a problemas de red, como actualizar la interfaz de usuario, registrar datos de telemetría o activar un comportamiento adaptativo.
Parámetros : | | | | --- | --- | | subscriber | La instancia del suscriptor que desencadena el evento. | | user_data | Puntero opcional a los datos de usuario que se pasa al registrar la llamada de retorno. | | media_link_stats | Las estadísticas del enlace multimedia. | | reason | El motivo del cambio en el estado de la red. |
on_reconnected
| void(* on_reconnected) (otc_suscriptor *suscriptor, void *datos_usuario) |
Se invoca cuando se ha reanudado la transmisión del suscriptor.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. |
on_render_frame
| void(* on_render_frame) (otc_suscriptor *suscriptor, void *datos_usuario, const otc_video_frame *cuadro) |
Se invoca cuando un nuevo fotograma de vídeo para el suscriptor está listo para ser renderizado. No llamar a cualquier función de la API de OpenTok (excepto las que se encuentran en video_frame.h) en el mismo hilo que invoca esta función de devolución de llamada. Si necesitas llamar a una función de la API de OpenTok (por ejemplo, funciones en publisher.h o subscriber.h), reprogramar su ejecución en un hilo diferente.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. | | frame | El fotograma de vídeo. |
on_video_data_received
| void(* on_video_data_received) (otc_suscriptor *suscriptor, void *datos_usuario) |
Se invoca cuando un suscriptor recibe datos de vídeo por primera vez.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. |
on_video_desactivar_advertencia
| void(* on_video_disable_warning) (otc_suscriptor *suscriptor, void *datos_usuario) |
Se invoca cuando el OpenTok Media Router detecta que la calidad de la transmisión se ha deteriorado y que el vídeo se desactivará si la calidad sigue empeorando.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. |
Se ha eliminado la advertencia sobre el vídeo
| void(* on_video_disable_warning_lifted) (otc_suscriptor *suscriptor, void *datos_usuario) |
Se invoca cuando el OpenTok Media Router 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.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. |
on_video_desactivado
| void(* on_video_disabled) (otc_suscriptor *suscriptor, void *datos_usuario, enum otc_video_reason (razón) |
Se invoca cuando se desactiva el vídeo del suscriptor.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. | | reason | Proporciona más detalles sobre el motivo por el que se ha desactivado el vídeo. |
on_video_enabled
| void(* on_video_enabled) (otc_suscriptor *suscriptor, void *datos_usuario, enum otc_video_reason (razón) |
Se invoca cuando se activa el vídeo del suscriptor.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. | | reason | Proporciona más detalles sobre el motivo por el que se ha habilitado el vídeo. |
on_video_quality_changed
| void(* on_video_quality_changed) (otc_suscriptor *suscriptor, void *datos_usuario, const struct otc_subscriber_video_stats *estadísticas, enumeración otc_video_reason (razón) |
Esta función de devolución de llamada se activa cuando se detecta un evento relacionado con la calidad en el lado del suscriptor.
La implementación actual solo lo activa en caso de interrupción del vídeo (pausa), cambio de códec o cambio de resolución. Los bloqueos se registran internamente y se muestran a través de las estadísticas, pero no se activa ninguna llamada de retorno para cada bloqueo debido a su corta duración y a su elevada frecuencia potencial. Solo se activa una llamada de retorno cuando se detecta una pausa (por ejemplo, cuando no se reproduce ningún fotograma durante más de 5 segundos), ya que esto representa una interrupción más significativa en la reproducción multimedia.
El reason Este parámetro indica la causa del evento y se tiene en cuenta siguiendo el siguiente orden de prioridad: OTC_VIDEO_REASON_VIDEO_INTERRUPT, OTC_VIDEO_REASON_CODEC_CHANGE, OTC_VIDEO_REASON_RESOLUTION_CHANGE.
Este evento se diferencia de on_video_disabled y on_video_enabled funciones de devolución de llamada, ya que notifica los cambios relevantes en la calidad del vídeo. on_video_disabled y «on_video_enabled» solo indican 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 de reserva). Por el contrario, este evento proporciona información de diagnóstico sobre las causas de la degradación de la calidad, como los bloqueos, el número de pausas y las estadísticas actualizadas.
Esta función de devolución de llamada 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 alternativa de audio o de los cambios en las propiedades de la transmisión (como la desactivación del vídeo), además de activar la on_video_disabled y on_video_enabled En el caso de las llamadas de retorno, la interrupción también se registra como una pausa en las estadísticas de vídeo, y se aplica la correspondiente calificación de calidad de la interrupción del vídeo.
Las aplicaciones pueden utilizar esta función de devolución de llamada para responder a problemas de calidad, como actualizar la interfaz de usuario, registrar datos de telemetría o notificar al usuario.
Parámetros
: | | |
| --- | --- |
| subscriber | La instancia del suscriptor que desencadena el evento. |
| stats | Las últimas estadísticas de vídeo del suscriptor en el momento del evento. |
| user_data | Puntero opcional a los datos de usuario que se pasa al registrar la llamada de retorno. |
| motivo | El motivo del evento de calidad, basado en otc_video_reason. |
on_video_stats
| void(* on_video_stats) (otc_suscriptor *suscriptor, void *datos_usuario, struct otc_subscriber_video_stats (estadísticas_de_vídeo) |
Se ejecuta periódicamente para generar un informe con las estadísticas de vídeo del suscriptor.
Parámetros : | | | | --- | --- | | subscriber | La instancia que realiza esta llamada. | | user_data | Puntero a los datos personalizados del usuario asociados a esta estructura. | | video_stats | Un puntero a la estructura de estadísticas del vídeo. |
reservado
| void* reservado |
Un puntero nulo a un área de memoria que contiene recursos reservados utilizados para la implementación interna.
datos_usuario
| void* datos_de_usuario |
Este miembro de la estructura puede apuntar a datos relacionados con el suscriptor que el desarrollador pueda necesitar.