#include <subscriber.h>
Ausführliche Beschreibung
Rückruffunktionen für Abonnenten.
Diese Struktur enthält eine Reihe von Funktionszeigern auf Funktionen, die bei Ereignissen im Zusammenhang mit einem OpenTok-Abonnenten aufgerufen werden können.
Alle Rückrufe erfolgen nicht über die Anwendung oder den Hauptthread, sondern über einen internen Thread. Die Anwendung sollte den Rückruf so schnell wie möglich zurückgeben, um ein Blockieren des internen Threads zu vermeiden.
Felddokumentation
on_audio_data
| void(* on_audio_data) (otc_Abonnent *Abonnent, void *user_data, const struct otc_audio_data *audio_data) |
Wird in regelmäßigen Abständen aufgerufen, um die Audiodaten des Teilnehmers zu melden. Die empfangenen Audioeigenschaften können sich dynamisch ändern. Ursachen für diese Änderungen sind beispielsweise die Aushandlung des Audio-Codecs oder die Netzwerkbedingungen. Die Verbraucher der Audiodaten sind dafür verantwortlich, diese Änderungen entsprechend dem implementierten Anwendungsfall zu verarbeiten (z. B. Audio-Resampling).
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf ausführt. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | audio_data | Die Audiodaten. |
on_audio_disabled
| void(* on_audio_disabled) (otc_Abonnent *Abonnent, void *user_data) |
Wird aufgerufen, wenn der Ton des Abonnenten deaktiviert ist.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. |
on_audio_enabled
| void(* on_audio_enabled) (otc_Abonnent *Abonnent, void *user_data) |
Wird aufgerufen, wenn die Audiofunktion des Teilnehmers aktiviert ist.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. |
on_audio_level_updated
| void(* on_audio_level_updated) (otc_Abonnent *Abonnent, void *user_data, float audio_level) |
Wird in regelmäßigen Abständen aufgerufen, um den Audiopegel des Teilnehmers zu melden.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | audio_level | Der Wert für die Lautstärke, zwischen 0 und 1,0. |
on_audio_stats
| void(* on_audio_stats) (otc_Abonnent *Abonnent, void *user_data, struct otc_subscriber_audio_stats audio_stats) |
Wird in regelmäßigen Abständen aufgerufen, um Audiostatistiken für den Teilnehmer zu melden.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | audio_stats | Ein Zeiger auf die Struktur „audio_stats“. |
on_caption_text
| void(* on_caption_text) (otc_Abonnent *Abonnent, void *user_data, const char *text, otc_bool is_final) |
Wird aufgerufen, wenn Untertiteltext für den Stream des Abonnenten verfügbar ist.
Parameter : | | | | --- | --- | | subscriber | Die Subscriber-Instanz. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | text | Zeiger auf den Bildunterschriftentext. | | is_final | Gibt an, ob eine Bildunterschrift abgeschlossen ist. |
on_connected
| void(* on_connected) (otc_Abonnent *Abonnent, void *user_data, const otc_stream *Stream) |
Wird aufgerufen, wenn die Instanz erfolgreich eine Verbindung zum Stream hergestellt hat und mit der Wiedergabe der Medien beginnt.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | stream | Der Stream des Abonnenten. Die Instanz besteht nicht länger als die Ausführung der Callback-Funktion. Stellen Sie sicher, dass Sie eine Kopie erstellen, falls diese Instanz später verwendet werden soll. |
on_disconnected
| void(* on_disconnected) (otc_Abonnent *Abonnent, void *user_data) |
Wird aufgerufen, wenn der Stream des Teilnehmers unterbrochen wurde. Dieser Callback wird nur aufgerufen, wenn die Funktion zur Wiederherstellung der Verbindung aktiviert ist; im Anschluss wird „on_reconnected“ aufgerufen, sofern die Wiederherstellung erfolgreich war. Normale Unterbrechungen, bei denen die Wiederherstellung der Verbindung nicht aktiviert ist, werden über den Callback „on_error“ gemeldet.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. |
on_error
| void(* on_error) (otc_Abonnent *Abonnent, void *user_data, const char *error_string, enum otc_subscriber_error_code Fehler) |
Wird aufgerufen, wenn der Teilnehmer ausfällt.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | error_string | Eine Zeichenkette, die die Fehlermeldung enthält. | | error | Wert der Fehlercode-Enumeration. |
on_media_link_stats
| void(* on_media_link_stats) (otc_Abonnent *Abonnent, void *user_data, const struct otc_subscriber_media_link_stats *media_link_stats) |
Wird in regelmäßigen Abständen aufgerufen, um Statistiken zu den Medienverbindungen des Teilnehmers zu melden.
Statistiken zu Medienverbindungen bieten einen einheitlichen Überblick über die Netzwerkbedingungen auf Transportebene.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | media_link_stats | Ein Zeiger auf die Struktur „media_link_stats“. |
on_network_condition_changed
| void(* on_network_condition_changed) (otc_Abonnent *Abonnent, void *user_data, const struct otc_subscriber_media_link_stats *media_link_stats, Aufzählung otc_network_reason Grund) |
Dieser Callback wird aufgerufen, wenn eine Änderung der Netzwerkbedingungen für den Abonnenten oder den Remote-Publisher festgestellt wird.
Die aktuelle Implementierung löst diesen Callback nur dann aus, wenn sich die Netzwerkbedingungen auf einer der beiden Seiten geändert haben.
Die reason Der Parameter gibt die Ursache des Ereignisses an und ist derzeit immer OTC_NETWORK_REASON_NETWORK_CONDITION_CHANGE.
Diese Veranstaltung unterscheidet sich von on_video_disabled und on_video_enabled Callbacks insofern, als es Änderungen des Netzwerkzustands meldet und nicht Änderungen des Status der Videospur des Teilnehmers. Anwendungen können diesen Callback nutzen, um auf Netzwerkprobleme zu reagieren, beispielsweise durch Aktualisierung der Benutzeroberfläche, Protokollierung von Telemetriedaten oder Auslösen adaptiver Verhaltensweisen.
Parameter : | | | | --- | --- | | subscriber | Die Abonnenteninstanz, die das Ereignis auslöst. | | user_data | Optionaler Zeiger auf Benutzerdaten, der bei der Registrierung des Callbacks übergeben wird. | | media_link_stats | Die Statistiken zum Medienlink. | | reason | Der Grund für die Änderung der Netzwerkbedingungen. |
on_reconnected
| void(* on_reconnected) (otc_Abonnent *Abonnent, void *user_data) |
Wird aufgerufen, wenn der Stream des Teilnehmers wieder aufgenommen wurde.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. |
on_render_frame
| void(* on_render_frame) (otc_Abonnent *Abonnent, void *user_data, const otc_video_frame *Rahmen) |
Wird aufgerufen, wenn ein neues Videobild für den Teilnehmer zur Darstellung bereit ist. Nicht OpenTok-API-Funktionen aufrufen (mit Ausnahme derjenigen in video_frame.h) in demselben Thread, der diesen Callback aufruft. Wenn Sie eine OpenTok-API-Funktion aufrufen müssen (beispielsweise Funktionen in publisher.h oder subscriber.h), die Ausführung auf einen anderen Thread verlagern.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | frame | Der Videorahmen. |
on_video_data_received
| void(* on_video_data_received) (otc_Abonnent *Abonnent, void *user_data) |
Wird aufgerufen, wenn ein Abonnent zum ersten Mal Videodaten empfängt.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. |
on_video_disable_warning
| void(* on_video_disable_warning) (otc_Abonnent *Abonnent, void *user_data) |
Wird aufgerufen, wenn der OpenTok Media Router feststellt, dass sich die Stream-Qualität verschlechtert hat und das Video deaktiviert wird, sollte sich die Qualität weiter verschlechtern.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. |
on_video_disable_warning_aufgehoben
| void(* on_video_disable_warning_lifted) (otc_Abonnent *Abonnent, void *user_data) |
Wird aufgerufen, wenn der OpenTok Media Router feststellt, dass sich die Stream-Qualität so weit verbessert hat, dass das Deaktivieren des Videos kein unmittelbares Risiko mehr darstellt.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. |
on_video_disabled
| void(* on_video_disabled) (otc_Abonnent *Abonnent, void *user_data, enum otc_video_reason Grund) |
Wird aufgerufen, wenn das Video des Teilnehmers deaktiviert wird.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | reason | Enthält weitere Details dazu, warum das Video deaktiviert wurde. |
on_video_enabled
| void(* on_video_enabled) (otc_Abonnent *Abonnent, void *user_data, enum otc_video_reason Grund) |
Wird aufgerufen, wenn das Video des Teilnehmers aktiviert ist.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf auslöst. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | reason | Liefert weitere Details dazu, warum das Video aktiviert wurde. |
on_video_quality_changed
| void(* on_video_quality_changed) (otc_Abonnent *Abonnent, void *user_data, const struct otc_subscriber_video_stats *Statistiken, Aufzählung otc_video_reason Grund) |
Dieser Callback wird aufgerufen, wenn auf der Abonnentenseite ein qualitätsbezogenes Ereignis erkannt wird.
Die aktuelle Implementierung löst dies nur im Falle einer Videounterbrechung (Pause), eines Codec-Wechsels oder einer Änderung der Auflösung aus. Einfrieren werden intern erfasst und über Statistiken ausgewiesen, jedoch wird aufgrund ihrer kurzen Dauer und der potenziell hohen Häufigkeit nicht bei jedem Einfrieren ein Callback ausgelöst. Ein Callback wird nur ausgelöst, wenn eine Pause erkannt wird (z. B. wenn über 5 Sekunden lang kein Bild gerendert wird), da dies eine bedeutendere Unterbrechung der Medienwiedergabe darstellt.
Die reason Der Parameter gibt die Ursache des Ereignisses an und wird in der folgenden Prioritätsreihenfolge berücksichtigt: OTC_VIDEO_REASON_VIDEO_INTERRUPT, OTC_VIDEO_REASON_CODEC_CHANGE, OTC_VIDEO_REASON_RESOLUTION_CHANGE.
Diese Veranstaltung unterscheidet sich von on_video_disabled und on_video_enabled Callbacks, da es Änderungen meldet, die für die Videoqualität relevant sind. on_video_disabled und `on_video_enabled geben lediglich an, dass die Videospur des Abonnenten ein- oder ausgeschaltet wurde (beispielsweise aufgrund einer Aktualisierung der Stream-Eigenschaften oder eines Audio-Fallbacks). Im Gegensatz dazu liefert dieses Ereignis Diagnoseinformationen zu Ursachen für Qualitätseinbußen, wie z. B. Bildfrieren, Pausenanzahl und aktualisierte Statistiken.
Dieser Callback berücksichtigt alle Arten von Videounterbrechungen, die 5 Sekunden oder länger dauern. Das bedeutet, dass im konkreten Fall eines Audio-Fallbacks oder von Änderungen an den Stream-Eigenschaften (z. B. wenn das Video deaktiviert wird) neben der Auslösung des on_video_disabled und on_video_enabled Bei Callbacks wird die Unterbrechung ebenfalls als Pause in der Videostatistik erfasst, und es wird eine entsprechende Video-Unterbrechungsqualität
Applications can use this Callback to respond to quality issues, such as updating the user interface, logging telemetry data, or notifying the user.
Parameter
: | | |
| --- | --- |
| subscriber | Die Subscriber-Instanz, die das Ereignis auslöst. |
| stats | Die aktuellsten Videostatistiken des Subscribers zum Zeitpunkt des Ereignisses. |
| user_data | Optionaler Zeiger auf Benutzerdaten, der bei der Registrierung des Callbacks übergeben wird. |
| reason | Der Grund für das Qualitätsereignis, basierend auf otc_video_reason. |
on_video_stats
| void(* on_video_stats) (otc_Abonnent *Abonnent, void *user_data, struct otc_subscriber_video_stats video_stats) |
Wird in regelmäßigen Abständen aufgerufen, um Videostatistiken für den Abonnenten zu melden.
Parameter : | | | | --- | --- | | subscriber | Die Instanz, die diesen Aufruf ausführt. | | user_data | Zeiger auf benutzerdefinierte Daten, die an diese Struktur gebunden sind. | | video_stats | Ein Zeiger auf die Struktur „video_stats“. |
reserviert
| void* reserviert |
Ein void-Zeiger auf einen Speicherbereich, der reservierte Ressourcen enthält, die für die interne Implementierung verwendet werden.
user_data
| void* user_data |
Dieses Struktur-Element kann auf Daten verweisen, die sich auf den Abonnenten beziehen und die der Entwickler möglicherweise benötigt.