#include <publisher.h>

データフィールド
void(* on_stream_created )(otc_publisher *publisher, void *ユーザーデータ, const otc_stream *ストリーム)
void(* on_stream_destroyed )(otc_publisher *publisher, void *ユーザーデータ, const otc_stream *ストリーム)
void(* on_render_frame )(otc_publisher *publisher, void *ユーザーデータ, const otc_video_frame *フレーム)
void(* on_audio_level_updated )(otc_publisher *publisher, void *ユーザーデータ, float audio_level)
void(* on_publisher_mute_forced )(otc_publisher *publisher, void *ユーザーデータ)
void(* on_audio_stats )(otc_publisher *publisher, void *ユーザーデータ, struct OTC_PUBLISHER_AUDIO_STATS audio_stats[], size_t number_of_stats)
void(* on_video_stats )(otc_publisher *publisher, void *ユーザーデータ, struct OTC_PUBLISHER_VIDEO_STATS video_stats[], size_t number_of_stats)
void(* on_error )(otc_publisher *publisher, void *ユーザーデータ, const char *error_string, enum otc_publisher_error_code error_code)
void(* on_video_disabled )(otc_publisher *publisher, void *ユーザーデータ, enum otc_video_reason 理由)
void(* on_video_enabled )(otc_publisher *publisher, void *ユーザーデータ, enum otc_video_reason 理由)
void(* on_video_disable_warning )(otc_publisher *publisher, void *ユーザーデータ)
void(* on_video_disable_warning_lifted )(otc_publisher *publisher, void *ユーザーデータ)
void(* on_video_quality_changed )(struct otc_publisher *publisher, void *ユーザーデータ, const struct OTC_PUBLISHER_VIDEO_STATS *統計、列挙型 otc_video_reason 理由)
void(* on_network_condition_changed )(otc_publisher *publisher, void *ユーザーデータ, const struct otc_publisher_media_link_stats *統計、列挙型 otc_network_reason 理由)
void(* on_media_link_stats )(otc_publisher *publisher, void *ユーザーデータ, struct otc_publisher_media_link_stats media_link_stats[], size_t number_of_stats)
void * ユーザーデータ
void * 予約済み

詳細な説明

パブリッシャーのコールバック関数。

この構造体は、OpenTokパブリッシャーに関連するイベントが発生した際に呼び出されるコールバック関数への関数ポインタの集合です。

すべてのコールバックは、アプリケーションやメインスレッド上ではなく、内部スレッド上で行われる。アプリケーションは、内部スレッドのブロックを避けるために、できるだけ早くコールバックを返すべきである。

コールバック関数に渡されるデータ( publisher そして user_data) は、コールバックが呼び出された後に解放されます。データを保持する必要がある場合は、データのコピーを作成してください。

現場記録

on_audio_level_updated

void(* on_audio_level_updated) (otc_publisher *publisher, void *ユーザーデータ, float audio_level)

パブリッシャーのオーディオレベルを報告するために、定期的に呼び出されます。

パラメータ : | | | | --- | --- | | publisher | パブリッシャーへのポインタ。 | | user_data | パブリッシャーに対して設定した user_data へのポインタ。 | | audio_level | オーディオレベルの値(0 から 1.0 まで)。 |

on_audio_stats

void(* on_audio_stats) (otc_publisher *publisher, void *ユーザーデータ, struct OTC_PUBLISHER_AUDIO_STATS audio_stats[], size_t number_of_stats)

パブリッシャーのオーディオ統計情報を報告するために、定期的に呼び出されます。

パラメータ : | | | | --- | --- | | publisher | パブリッシャーへのポインタ。 | | user_data | パブリッシャーに設定した user_data へのポインタ。 | | audio_stats | パブリッシャーのオーディオ統計情報の配列。 | | number_of_stats | 配列に含まれるオーディオ統計情報の数。 |

on_error

void(* on_error) (otc_publisher *publisher, void *ユーザーデータ, const char *error_string, enum otc_publisher_error_code error_code)

パブリッシャーの処理が失敗した際に呼び出されます。

パラメータ : | | | | --- | --- | | publisher | パブリッシャーへのポインタ。 | | user_data | パブリッシャーに対して設定した user_data へのポインタ。 | | error_string | エラーメッセージを含む文字列。 | | error_code | エラーコードの列挙型値。 |

on_media_link_stats

void(* on_media_link_stats) (otc_publisher *publisher, void *ユーザーデータ, struct otc_publisher_media_link_stats media_link_stats[], size_t number_of_stats)

パブリッシャーのメディアリンク統計を報告するために、定期的に呼び出されます。

メディアリンクの統計情報は、トランスポート層レベルのネットワーク状況を包括的に把握することを可能にします。

パラメータ : | | | | --- | --- | | publisher | この呼び出しを実行するインスタンス。 | | user_data | この構造体にバインドされたユーザーカスタムデータへのポインタ。 | | media_link_stats | メディアリンク統計構造体へのポインタ。 |

on_network_condition_changed

void(* on_network_condition_changed) (otc_publisher *publisher, void *ユーザーデータ, const struct otc_publisher_media_link_stats *統計、列挙型 otc_network_reason 理由)

このコールバックは、パブリッシャーのネットワーク状態の変化が検出されたときに呼び出されます。

について reason このパラメータはイベントの原因を示しており、現在は常に OTC_NETWORK_REASON_NETWORK_CONDITION_CHANGE.

このイベントは、 on_video_disabled そして on_video_enabled このコールバックは、パブリッシャーのビデオトラックの状態の変化ではなく、ネットワークの状態の変化を報告するという点で、他のコールバックとは異なります。Applicationsはこのコールバックを利用して、UIの更新、テレメトリの記録、適応型動作のトリガーなど、ネットワークの問題に対応することができます。

パラメータ : | | | | --- | --- | | publisher | イベントをトリガーしたパブリッシャーインスタンス。 | | user_data | コールバック登録時に渡される、オプションのユーザーデータポインタ。 | | stats | パブリッシャーのメディアリンク統計情報へのポインタ。 | | reason | ネットワーク状態が変化した理由。 |

on_publisher_mute_forced

void(* on_publisher_mute_forced) (otc_publisher *publisher, void *ユーザーデータ)

モデレーターがこのパブリッシャーの音声を強制的にミュートにした際に呼び出されます。

パラメータ : | | | | --- | --- | | publisher | パブリッシャーへのポインタ。 | | user_data | パブリッシャーに対して設定した user_data へのポインタ。 |

on_render_frame

void(* on_render_frame) (otc_publisher *publisher, void *ユーザーデータ, const otc_video_frame *フレーム)

パブリッシャーによってレンダリングの準備が整った新しいフレームがある場合に呼び出されます。 しないでください OpenTok API の関数を呼び出す(ただし、 video_frame.h) このコールバックを呼び出すのと同じスレッド上で実行されます。OpenTok API 関数(たとえば、 publisher.h または subscriber.h)、その実行を別のスレッドに振り替える。

パラメータ : | | | | --- | --- | | publisher | パブリッシャーへのポインタ。 | | user_data | パブリッシャーに対して設定した user_data へのポインタ。 | | frame | 新しいビデオフレームへのポインタ。 |

on_stream_created

void(* on_stream_created) (otc_publisher *publisher, void *ユーザーデータ, const otc_stream *ストリーム)

パブリッシャーのストリームが作成されたときに呼び出されます。

パラメータ : | | | | --- | --- | | publisher | パブリッシャーへのポインタ。 | | user_data | パブリッシャーに対して設定した user_data へのポインタ。 | | stream | ストリームへのポインタ。 |

on_stream_destroyed

void(* on_stream_destroyed) (otc_publisher *publisher, void *ユーザーデータ, const otc_stream *ストリーム)

パブリッシャーのストリームが破棄されたときに呼び出されます。

パラメータ : | | | | --- | --- | | publisher | パブリッシャーへのポインタ。 | | user_data | パブリッシャーに対して設定した user_data へのポインタ。 | | stream | ストリームへのポインタ。 |

on_video_disable_warning

void(* on_video_disable_warning) (otc_publisher *publisher, void *ユーザーデータ)

パブリッシャーがネットワークの輻輳レベルが悪化したと判断し、画質がさらに低下した場合に動画が停止されることになる場合に呼び出されます。

パラメータ : | | | | --- | --- | | publisher | この呼び出しを実行するインスタンス。 | | user_data | この構造体にバインドされたユーザー定義データへのポインタ。 |

on_video_disable_warning_lifted

void(* on_video_disable_warning_lifted) (otc_publisher *publisher, void *ユーザーデータ)

パブリッシャーが、ネットワークの輻輳レベルが改善し、無効化される動画が直ちにリスクをもたらさない状態になったと判断した際に呼び出されます。

パラメータ : | | | | --- | --- | | publisher | この呼び出しを実行するインスタンス。 | | user_data | この構造体にバインドされたユーザー定義データへのポインタ。 |

on_video_disabled

void(* on_video_disabled) (otc_publisher *publisher, void *ユーザーデータ, enum otc_video_reason 理由)

パブリッシャーの動画が無効になっている場合に呼び出されます。

パラメータ : | | | | --- | --- | | publisher | この呼び出しを実行するインスタンス。 | | user_data | この構造体にバインドされたユーザーカスタムデータへのポインタ。 | | reason | 動画が無効化された理由に関する詳細情報を示します。 |

on_video_enabled

void(* on_video_enabled) (otc_publisher *publisher, void *ユーザーデータ, enum otc_video_reason 理由)

パブリッシャーの動画が有効になっているときに呼び出されます。

パラメータ : | | | | --- | --- | | publisher | この呼び出しを実行するインスタンス。 | | user_data | この構造体にバインドされたユーザーカスタムデータへのポインタ。 | | reason | 動画が有効化された理由に関する詳細情報を示します。 |

on_video_quality_changed

void(* on_video_quality_changed) (struct otc_publisher *publisher, void *ユーザーデータ, const struct OTC_PUBLISHER_VIDEO_STATS *統計、列挙型 otc_video_reason 理由)

このコールバックは、パブリッシャーのビデオストリームの品質状態に変化があったたびに呼び出されます。このコールバックでは、イベントに関する情報、更新された統計情報、およびイベントが発生した理由を示す理由コードが提供されます。

について reason このパラメータはイベントの原因を示しており、以下の優先順位で考慮されます:帯域幅の低下、CPU負荷の増加、その他の品質低下の原因、コーデックの変更、解像度またはレイヤーの変更。

このイベントは、 on_video_disabled そして on_video_enabled コールバックと同様に、動画の品質に関連する変更を報告します。 on_video_disabled また、`on_video_enabled` は、加入者のビデオトラックがオンまたはオフになったこと(たとえば、ストリームプロパティの更新やオーディオフォールバックなどによる)を示すだけです。これに対し、このイベントは、CPU や帯域幅の制限など、画質低下の原因に関する診断情報を提供し、ビデオがオンのままである場合にもトリガーされます。

Applications can use this callback to monitor quality changes and react accordingly, such as adjusting UI elements or triggering alerts.

パラメータ : | | | | --- | --- | | publisher | この呼び出しを実行するインスタンス。 | | stats | 解像度やビデオレイヤーの変更に関する詳細を含む、更新された統計情報。 | | user_data | コールバックの登録時に渡される、オプションのユーザーデータポインタ。 | | reason | 品質イベントの理由コード。以下に基づいて決定されます。 otc_video_reason enum. |

on_video_stats

void(* on_video_stats) (otc_publisher *publisher, void *ユーザーデータ, struct OTC_PUBLISHER_VIDEO_STATS video_stats[], size_t number_of_stats)

パブリッシャー向けの動画統計情報を報告するために、定期的に呼び出されます。

パラメータ : | | | | --- | --- | | publisher | パブリッシャーへのポインタ。 | | user_data | パブリッシャーに対して設定した user_data へのポインタ。 | | video_stats | パブリッシャーの動画統計情報の配列。 | | number_of_stats | 配列に含まれる動画統計情報の数。 |

予約済み

void* reserved

内部実装に使用される、予約済みリソースが格納されているメモリ領域へのvoidポインタ。

ユーザーデータ

void* user_data

パブリッシャーに関連して設定したデータへのポインタ。