#include <subscriber.h>

Champs de données
void(* on_connected )(abonné_otc *abonné, void *données_utilisateur, const otc_stream *stream)
void(* on_disconnected )(abonné_otc *abonné, void *données_utilisateur)
void(* on_reconnected )(abonné_otc *abonné, void *données_utilisateur)
void(* on_render_frame )(abonné_otc *abonné, void *données_utilisateur, const otc_video_frame *image)
void(* on_video_disabled )(abonné_otc *abonné, void *données_utilisateur, énumération otc_video_reason raison)
void(* on_video_enabled )(abonné_otc *abonné, void *données_utilisateur, énumération otc_video_reason raison)
void(* on_audio_disabled )(abonné_otc *abonné, void *données_utilisateur)
void(* on_audio_enabled )(abonné_otc *abonné, void *données_utilisateur)
void(* on_video_data_received )(abonné_otc *abonné, void *données_utilisateur)
void(* on_video_disable_warning )(abonné_otc *abonné, void *données_utilisateur)
void(* texte_de_la_légende )(abonné_otc *abonné, void *données_utilisateur, const char *text, otc_bool is_final)
void(* on_video_disable_warning_lifted )(abonné_otc *abonné, void *données_utilisateur)
void(* on_audio_stats )(abonné_otc *abonné, void *données_utilisateur, struct statistiques_audio_abonnés_otc (audio_stats)
void(* on_video_stats )(abonné_otc *abonné, void *données_utilisateur, struct otc_subscriber_video_stats (statistiques_vidéo)
void(* on_audio_level_updated )(abonné_otc *abonné, void *données_utilisateur, float niveau_audio)
void(* on_error )(abonné_otc *abonné, void *données_utilisateur, const char *error_string, enum otc_code_erreur_abonné erreur)
void(* on_audio_data )(abonné_otc *abonné, void *données_utilisateur, struct constante otc_audio_data *données_audio)
void(* on_video_quality_changed )(abonné_otc *abonné, void *données_utilisateur, struct constante otc_subscriber_video_stats *statistiques, énumération otc_video_reason raison)
void(* on_network_condition_changed )(abonné_otc *abonné, void *données_utilisateur, struct constante statistiques-sur-les-liens-multimédia-des-abonnés-otc *media_link_stats, énumération otc_network_reason raison)
void(* on_media_link_stats )(abonné_otc *abonné, void *données_utilisateur, struct constante statistiques-sur-les-liens-multimédia-des-abonnés-otc *media_link_stats)
void * données_utilisateur
void * réservé

Description détaillée

Fonctions de rappel des abonnés.

Cette structure regroupe des pointeurs vers des fonctions pouvant être appelées lors d'événements liés à un abonné OpenTok.

Tous les rappels ne seront pas effectués sur l'application ou le thread principal, mais sur un thread interne. L'application doit renvoyer le rappel le plus rapidement possible afin d'éviter de bloquer le thread interne.

Documentation sur le terrain

on_audio_data

void(* on_audio_data) (abonné_otc *abonné, void *données_utilisateur, struct constante otc_audio_data *données_audio)

Appelée périodiquement pour transmettre les données audio de l'abonné. Les propriétés audio reçues peuvent évoluer de manière dynamique. Ces changements peuvent être dus à la négociation du codec audio, aux conditions du réseau, etc. Il incombe aux consommateurs des données audio de gérer ces changements en fonction du cas d'utilisation mis en œuvre (par exemple, le rééchantillonnage audio).

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | audio_data | Les données audio. |

on_audio_disabled

void(* on_audio_disabled) (abonné_otc *abonné, void *données_utilisateur)

Appelée lorsque le son de l'abonné est désactivé.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. |

on_audio_enabled

void(* on_audio_enabled) (abonné_otc *abonné, void *données_utilisateur)

Appelée lorsque le son de l'abonné est activé.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. |

on_audio_level_updated

void(* on_audio_level_updated) (abonné_otc *abonné, void *données_utilisateur, float niveau_audio)

Appelée périodiquement pour communiquer le niveau audio de l'abonné.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | audio_level | Valeur du niveau audio, comprise entre 0 et 1,0. |

on_audio_stats

void(* on_audio_stats) (abonné_otc *abonné, void *données_utilisateur, struct statistiques_audio_abonnés_otc (audio_stats)

Appelée périodiquement pour transmettre les statistiques audio relatives à l'abonné.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | audio_stats | Pointeur vers la structure des statistiques audio. |

texte_de_la_légende

void(* on_caption_text) (abonné_otc *abonné, void *données_utilisateur, const char *text, otc_bool is_final)

Appelée lorsque le texte des sous-titres du flux de l'abonné est disponible.

Paramètres : | | | | --- | --- | | subscriber | L'instance de l'abonné. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | text | Pointeur vers le texte de la légende. | | is_final | Indique si une légende est terminée. |

on_connected

void(* on_connected) (abonné_otc *abonné, void *données_utilisateur, const otc_stream *stream)

Appelée lorsque l'instance s'est connectée avec succès au flux et commence la lecture du contenu multimédia.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | stream | Le flux de l'abonné. L'instance ne survit pas à l'exécution de la fonction de rappel. Veillez à en faire une copie si cette instance doit être réutilisée ultérieurement. |

on_disconnected

void(* on_disconnected) (abonné_otc *abonné, void *données_utilisateur)

Appelée lorsque le flux de l'abonné a été interrompu. Cette fonction de rappel n'est invoquée que si la fonctionnalité de reconnexion est activée ; elle est suivie de la fonction on_reconnected si la reconnexion aboutit. Les interruptions habituelles, lorsque la reconnexion n'est pas activée, sont signalées via la fonction de rappel on_error.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. |

on_error

void(* on_error) (abonné_otc *abonné, void *données_utilisateur, const char *error_string, enum otc_code_erreur_abonné erreur)

Appelée en cas d'échec de l'abonné.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | error_string | Chaîne de caractères contenant le message d'erreur. | | error | Valeur de l'énumération du code d'erreur. |

on_media_link_stats

void(* on_media_link_stats) (abonné_otc *abonné, void *données_utilisateur, struct constante statistiques-sur-les-liens-multimédia-des-abonnés-otc *media_link_stats)

Appelée périodiquement pour communiquer les statistiques relatives aux liens multimédias de l'abonné.

Les statistiques relatives aux liaisons de support offrent une vue d'ensemble des conditions du réseau au niveau du transport.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | media_link_stats | Pointeur vers la structure contenant les statistiques de la liaison multimédia. |

on_network_condition_changed

void(* on_network_condition_changed) (abonné_otc *abonné, void *données_utilisateur, struct constante statistiques-sur-les-liens-multimédia-des-abonnés-otc *media_link_stats, énumération otc_network_reason raison)

Cette fonction de rappel est appelée lorsqu'un changement d'état du réseau est détecté pour l'abonné ou l'éditeur distant.

Dans l'implémentation actuelle, cette fonction de rappel n'est déclenchée que lorsque l'état du réseau a changé pour l'un ou l'autre des deux côtés.

Les reason Ce paramètre indique la cause de l'événement et prend actuellement toujours la valeur OTC_NETWORK_REASON_NETWORK_CONDITION_CHANGE.

Cet événement diffère de on_video_disabled et on_video_enabled Ces callbacks se distinguent en ce qu'ils signalent les changements d'état du réseau plutôt que ceux de la piste vidéo de l'abonné. Les applications peuvent utiliser ce callback pour réagir à des problèmes réseau, par exemple en mettant à jour l'interface utilisateur, en enregistrant des données de télémétrie ou en déclenchant un comportement adaptatif.

Paramètres : | | | | --- | --- | | subscriber | L'instance d'abonné déclenchant l'événement. | | user_data | Pointeur de données utilisateur facultatif transmis lors de l'enregistrement du callback. | | media_link_stats | Les statistiques de la liaison multimédia. | | reason | La raison du changement d'état du réseau. |

on_reconnected

void(* on_reconnected) (abonné_otc *abonné, void *données_utilisateur)

Appelée lorsque le flux de l'abonné a repris.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. |

on_render_frame

void(* on_render_frame) (abonné_otc *abonné, void *données_utilisateur, const otc_video_frame *image)

Appelée lorsqu'une nouvelle image vidéo destinée à l'abonné est prête à être affichée. Ne pas appeler n'importe quelle fonction de l'API OpenTok (à l'exception de celles figurant dans video_frame.h) dans le même thread que celui qui déclenche ce callback. Si vous devez appeler une fonction de l'API OpenTok (par exemple, des fonctions dans publisher.h ou subscriber.h), reporter son exécution sur un autre thread.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | frame | L'image vidéo. |

on_video_data_received

void(* on_video_data_received) (abonné_otc *abonné, void *données_utilisateur)

Appelée lorsqu'un abonné reçoit des données vidéo pour la première fois.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. |

on_video_disable_warning

void(* on_video_disable_warning) (abonné_otc *abonné, void *données_utilisateur)

Cette méthode est appelée lorsque le routeur multimédia OpenTok détecte une dégradation de la qualité du flux et que la vidéo sera désactivée si cette dégradation se poursuit.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. |

on_video_disable_warning_lifted

void(* on_video_disable_warning_lifted) (abonné_otc *abonné, void *données_utilisateur)

Appelée lorsque le routeur multimédia OpenTok constate que la qualité du flux s'est suffisamment améliorée pour que la désactivation de la vidéo ne présente plus de risque immédiat.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. |

on_video_disabled

void(* on_video_disabled) (abonné_otc *abonné, void *données_utilisateur, énumération otc_video_reason raison)

Appelée lorsque la vidéo de l'abonné est désactivée.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | reason | Fournit plus de détails sur la raison pour laquelle la vidéo a été désactivée. |

on_video_enabled

void(* on_video_enabled) (abonné_otc *abonné, void *données_utilisateur, énumération otc_video_reason raison)

Appelée lorsque la vidéo de l'abonné est activée.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | reason | Fournit plus de détails sur la raison pour laquelle la vidéo a été activée. |

on_video_quality_changed

void(* on_video_quality_changed) (abonné_otc *abonné, void *données_utilisateur, struct constante otc_subscriber_video_stats *statistiques, énumération otc_video_reason raison)

Cette fonction de rappel est appelée lorsqu'un événement lié à la qualité est détecté du côté de l'abonné.

Dans l'implémentation actuelle, cet événement n'est déclenché qu'en cas d'interruption de la vidéo (pause), de changement de codec ou de changement de résolution. Les blocages sont suivis en interne et mis en évidence via les statistiques, mais aucun rappel n'est déclenché pour chaque blocage en raison de leur courte durée et de leur fréquence potentiellement élevée. Un rappel n'est déclenché que lorsqu'une pause est détectée (par exemple, aucune image affichée pendant plus de 5 secondes), car cela représente une perturbation plus importante de la lecture multimédia.

Les reason Ce paramètre indique la cause de l'événement et est pris en compte selon l'ordre de priorité suivant : OTC_VIDEO_REASON_VIDEO_INTERRUPT, OTC_VIDEO_REASON_CODEC_CHANGE, OTC_VIDEO_REASON_RESOLUTION_CHANGE.

Cet événement diffère de on_video_disabled et on_video_enabled des « callbacks » dans la mesure où il signale les changements ayant une incidence sur la qualité vidéo. on_video_disabled et `on_video_enabled` indiquent uniquement que la piste vidéo de l'abonné a été activée ou désactivée (par exemple, à la suite d'une mise à jour des propriétés du flux ou d'un basculement vers l'audio). En revanche, cet événement fournit des informations de diagnostic sur les causes de dégradation de la qualité, telles que les blocages, le nombre de pauses et les statistiques mises à jour.

Cette fonction de rappel prend en compte tous les types d'interruptions vidéo d'une durée de 5 secondes ou plus. Cela signifie que, dans le cas particulier d'un basculement vers l'audio ou de modifications des propriétés du flux (comme la désactivation de la vidéo), outre le déclenchement de la on_video_disabled et on_video_enabled Dans le cas des rappels, l'interruption est également enregistrée comme une pause dans les statistiques vidéo, et une qualité d'interruption vidéo correspondante

Les applications peuvent utiliser ce callback pour gérer les problèmes de qualité, par exemple pour mettre à jour l'interface utilisateur, enregistrer des données de télémétrie ou avertir l'utilisateur.

Paramètres : | | | | --- | --- | | subscriber | L'instance d'abonné déclenchant l'événement. | | stats | Les dernières statistiques vidéo de l'abonné au moment de l'événement. | | user_data | Pointeur de données utilisateur facultatif transmis lors de l'enregistrement du callback. | | reason | La raison de l'événement de qualité, basée sur otc_video_reason. |

on_video_stats

void(* on_video_stats) (abonné_otc *abonné, void *données_utilisateur, struct otc_subscriber_video_stats (statistiques_vidéo)

Appelée périodiquement pour transmettre les statistiques vidéo relatives à l'abonné.

Paramètres : | | | | --- | --- | | subscriber | L'instance qui effectue cet appel. | | user_data | Pointeur vers les données personnalisées de l'utilisateur associées à cette structure. | | video_stats | Pointeur vers la structure des statistiques vidéo. |

réservé

void* réservé

Un pointeur nul vers une zone de mémoire contenant des ressources réservées utilisées pour la mise en œuvre interne.

données_utilisateur

void* données_utilisateur

Cet élément de la structure peut pointer vers des données relatives à l'abonné dont le développeur pourrait avoir besoin.