#include <agora_rtc_api.h>
成员变量 | |
void(* | on_join_channel_success )(const char *channel, int elapsed_ms) |
void(* | on_connection_lost )(const char *channel) |
void(* | on_rejoin_channel_success )(const char *channel, int elapsed) |
void(* | on_error )(const char *channel, int code, const char *msg) |
void(* | on_user_joined )(const char *channel, uint32_t uid, int elapsed_ms) |
void(* | on_user_offline )(const char *channel, uint32_t uid, int reason) |
void(* | on_user_mute_audio )(const char *channel, uint32_t uid, int muted) |
void(* | on_user_mute_video )(const char *channel, uint32_t uid, int muted) |
void(* | on_key_frame_gen_req )(const char *channel, uint32_t uid, uint8_t stream_id) |
void(* | on_audio_data )(const char *channel, uint32_t uid, uint16_t sent_ts, uint8_t codec, const void *data_ptr, size_t data_len) |
void(* | on_video_data )(const char *channel, uint32_t uid, uint16_t sent_ts, uint8_t codec, uint8_t stream_id, int is_key_frame, const void *data_ptr, size_t data_len) |
void(* | on_rdt_availability_changed )(const char *channel, int is_available) |
void(* | on_cmd )(const char *channel, uint32_t uid, int cmd, const void *param_ptr, size_t param_len) |
void(* | on_data_from_rdt )(const char *channel, uint32_t uid, const void *data_ptr, size_t data_len) |
void(* | on_target_bitrate_changed )(const char *channel, uint32_t target_bps) |
void(* | on_local_user_registered )(const char *uname, uint32_t uid) |
void(* | on_remote_user_registered )(const char *uname, uint32_t uid) |
Agora SDK event handler 结构体。
void(* on_audio_data) (const char *channel, uint32_t uid, uint16_t sent_ts, uint8_t codec, const void *data_ptr, size_t data_len) |
收到频道内远端用户的音频帧回调。
[in] | channel | 频道名。 |
[in] | uid | 远端用户的用户 ID。 |
[in] | sent_ts | Unix 时间戳(ms)。标识远端用户调用 agora_rtc_send_audio_data 的时间。 |
[in] | codec | 音频编码格式,详见 audio_codec_e 。 |
[in] | data_ptr | 音频包数据。 |
[in] | data_len | 音频包数据长度(字节)。 |
void(* on_cmd) (const char *channel, uint32_t uid, int cmd, const void *param_ptr, size_t param_len) |
收到频道内远端用户通过可靠数据通道发送的控制指令时,SDK 触发该回调。
[in] | channel | 频道名。 |
[in] | uid | 远端用户的 ID。 |
[in] | cmd | 控制指令。 |
[in] | param_ptr | 控制指令的参数。如无,可设为 NULL。 |
[in] | param_len | 控制指令参数的大小(字节)。 |
void(* on_connection_lost) (const char *channel) |
连接丢失回调。
[in] | channel | 频道名。 |
void(* on_data_from_rdt) (const char *channel, uint32_t uid, const void *data_ptr, size_t data_len) |
收到频道中远端用户通过可靠数据通道传输过来的数据时,SDK 触发该回调。
[in] | channel | 频道名。 |
[in] | uid | 远端用户的 ID。 |
[in] | data_ptr | 数据段。 |
[in] | data_len | 数据段大小(字节)。 |
void(* on_error) (const char *channel, int code, const char *msg) |
发生错误回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。 通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。
[in] | channel | 频道名。 |
[in] | err | 错误码,详见 agora_err_code_e 。 |
[in] | msg | 错误描述。 |
void(* on_join_channel_success) (const char *channel, int elapsed_ms) |
加入频道成功回调。
[in] | channel | 频道名。 |
[in] | elapsed_ms | 从频道成功创建开始到发生此回调过去的时间(毫秒)。 |
void(* on_key_frame_gen_req) (const char *channel, uint32_t uid, uint8_t stream_id) |
频道内远端用户请求关键帧回调。
收到此回调后,发送端需生成一个新的关键帧。
[in] | channel | 频道名。 |
[in] | uid | 远端用户的用户 ID。 |
[in] | stream_id | 需要生成关键帧的视频流 ID。 |
void(* on_local_user_registered) (const char *uname, uint32_t uid) |
本地用户成功注册 String 型用户名回调。
本地用户调用 agora_rtc_init_with_name 方法使用 String 型用户名初始化成功后,会触发该回调。
[in] | uname | 本地用户的用户名。 |
[in] | uid | SDK 分配给本地用户的 UID。 |
void(* on_rdt_availability_changed) (const char *channel, int is_available) |
可靠数据通道 (RDT) 的可用状态发生变化时,SDK 触发该回调。
[in] | channel | 频道名。 |
[in] | is_available | 可用状态:
|
void(* on_rejoin_channel_success) (const char *channel, int elapsed) |
重新加入频道成功回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
[in] | channel | 频道名。 |
[in] | elapsed | 从开始重连到重连成功的时间(毫秒)。 |
void(* on_remote_user_registered) (const char *uname, uint32_t uid) |
远端用户成功注册 String 型用户名回调。
[in] | uname | 远端用户的用户名。 |
[in] | uid | 远端用户 ID。 |
void(* on_target_bitrate_changed) (const char *channel, uint32_t target_bps) |
建议应用程序调整码率回调。
SDK 会根据网络带宽状况的变化触发该回调来提醒应用程序调整目标码率。
[in] | channel | 频道名。 |
[in] | bps | 建议的目标码率值(bps)。 |
void(* on_user_joined) (const char *channel, uint32_t uid, int elapsed_ms) |
远端用户加入频道回调。
[in] | channel | 频道名。 |
[in] | uid | 用户 ID。 |
[in] | elapsed_ms | 从频道成功创建开始到发生此回调过去的时间(毫秒)。 |
void(* on_user_mute_audio) (const char *channel, uint32_t uid, int muted) |
频道内远端用户暂停/恢复发送音频流回调。
[in] | channel | 频道名。 |
[in] | uid | 远端用户的用户 ID。 |
[in] | muted | 远端用户是否发送音频流:
|
void(* on_user_mute_video) (const char *channel, uint32_t uid, int muted) |
频道内远端用户暂停/恢复发送视频流回调。
[in] | channel | 频道名。 |
[in] | uid | 远端用户的用户 ID。 |
[in] | muted | 远端用户是否发送视频流:
|
void(* on_user_offline) (const char *channel, uint32_t uid, int reason) |
远端用户离开频道回调。
[in] | channel | 频道名。 |
[in] | uid | 离开频道的用户 ID。 |
[in] | reason | 用户离开频道原因,详见 user_offline_reason_e 。 |
void(* on_video_data) (const char *channel, uint32_t uid, uint16_t sent_ts, uint8_t codec, uint8_t stream_id, int is_key_frame, const void *data_ptr, size_t data_len) |
收到频道内远端用户的视频帧回调。
[in] | channel | 频道名。 |
[in] | uid | 发送视频帧的远端用户的用户 ID。 |
[in] | sent_ts | Unix 时间戳(ms)。标识远端用户调用 agora_rtc_send_video_data 的时间。 |
[in] | codec | 视频编码格式,详见 video_codec_e 。 |
[in] | stream_id | 视频流 ID。取值范围为 [0,15]。 |
[in] | is_key_frame | 是否为视频关键帧:
|
[in] | data | 视频包数据。 |
[in] | len | 视频包数据长度(字节)。 |