#include <stddef.h>
#include <stdint.h>
结构体 | |
struct | video_frame_info_t |
struct | audio_frame_info_t |
struct | agora_rtc_event_handler_t |
宏定义 | |
#define | __agora_api__ |
#define | AGORA_TOKEN_MAX_LEN 512 |
#define | AGORA_CMD_PARAM_MAX_LEN 256 |
#define | AGORA_CREDENTIAL_MAX_LEN 256 |
#define | AGORA_CERTIFICATE_MAX_LEN 1024 |
函数 | |
const char * | agora_rtc_get_version (void) |
__agora_api__ const char * | agora_rtc_err_2_str (int err) |
__agora_api__ int | agora_rtc_license_gen_credential (char *credential, unsigned int *credential_len) |
__agora_api__ int | agora_rtc_license_verify (const char *certificate, int certificate_len, const char *credential, int credential_len) |
__agora_api__ int | agora_rtc_init (const char *app_id, uint32_t uid, const agora_rtc_event_handler_t *event_handler, const char *sdk_log_dir) |
__agora_api__ int | agora_rtc_init_with_name (const char *app_id, const char *uname, const agora_rtc_event_handler_t *event_handler, const char *sdk_log_dir) |
__agora_api__ int | agora_rtc_set_log_level (int level) |
__agora_api__ int | agora_rtc_config_log (int size_per_file, int max_file_count) |
__agora_api__ int | agora_rtc_join_channel (const char *channel, const void *token_ptr, size_t token_len) |
__agora_api__ int | agora_rtc_renew_token (const char *channel, const void *token_ptr, size_t token_len) |
__agora_api__ int | agora_rtc_mute_local_audio (const char *channel, int mute) |
__agora_api__ int | agora_rtc_mute_local_video (const char *channel, int mute) |
__agora_api__ int | agora_rtc_mute_remote_audio (const char *channel, uint32_t remote_uid, int mute) |
__agora_api__ int | agora_rtc_mute_remote_video (const char *channel, uint32_t remote_uid, int mute) |
__agora_api__ int | agora_rtc_request_video_key_frame (const char *channel, uint32_t remote_uid, uint8_t stream_id) |
__agora_api__ int | agora_rtc_send_audio_data (const char *channel, const void *data_ptr, size_t data_len, audio_frame_info_t *info_ptr) |
__agora_api__ int | agora_rtc_send_video_data (const char *channel, uint8_t stream_id, const void *data_ptr, size_t data_len, video_frame_info_t *info_ptr) |
__agora_api__ int | agora_rtc_send_cmd (const char *channel, int cmd, const void *param_ptr, size_t param_len) |
__agora_api__ int | agora_rtc_send_through_rdt (const char *channel, const void *data_ptr, size_t data_len) |
__agora_api__ int | agora_rtc_set_bwe_param (uint32_t min_bps, uint32_t max_bps, uint32_t start_bps) |
__agora_api__ int | agora_rtc_leave_channel (const char *channel) |
__agora_api__ int | agora_rtc_fini (void) |
#define __agora_api__ |
#define AGORA_CERTIFICATE_MAX_LEN 1024 |
#define AGORA_CMD_PARAM_MAX_LEN 256 |
#define AGORA_CREDENTIAL_MAX_LEN 256 |
#define AGORA_TOKEN_MAX_LEN 512 |
enum agora_err_code_e |
错误码。
enum audio_codec_e |
enum video_codec_e |
enum video_frame_e |
enum video_frame_rate_e |
__agora_api__ int agora_rtc_config_log | ( | int | size_per_file, |
int | max_file_count | ||
) |
配置 Agora SDK 的日志文件。
[in] | size_per_file | 每份日志文件的大小(字节)。取值范围为 [10000, 1000000]。 |
[in] | max_file_count | 日志文件数。取值范围为 [1, 100]。 |
__agora_api__ const char* agora_rtc_err_2_str | ( | int | err | ) |
将错误码转为静态字符串,以便查看错误描述。
[in] | err | 错误码。 |
__agora_api__ int agora_rtc_fini | ( | void | ) |
释放所有由 agora_rtc_init 方法分配给 Agora RTSA service 的资源。
const char* agora_rtc_get_version | ( | void | ) |
获取 SDK 版本。
__agora_api__ int agora_rtc_init | ( | const char * | app_id, |
uint32_t | uid, | ||
const agora_rtc_event_handler_t * | event_handler, | ||
const char * | sdk_log_dir | ||
) |
初始化 Agora RTSA service。
[in] | app_id | Agora 为 App 开发者签发的 APP ID。 |
[in] | uid | 用户 ID(32 位整型)。建议设置范围:1 到 (232-1),并保证唯一性。 0 是无效的 uid。如果将 uid 设为 0,系统将自动分配一个 UID。 |
[in] | event_handler | 用于处理 Agora SDK 事件的一系列回调。 |
[in] | sdk_log_dir | 用于存放 Agora SDK 日志的目录。如果 sdk_log_dir 设为 NULL,则日志目录位于:
|
__agora_api__ int agora_rtc_init_with_name | ( | const char * | app_id, |
const char * | uname, | ||
const agora_rtc_event_handler_t * | event_handler, | ||
const char * | sdk_log_dir | ||
) |
使用 String 型用户名初始化 Agora RTSA SDK。
初始化成功后,SDK 会触发 on_local_user_registered
回调向本地用户报告该 uname 对应的 uid 。
本地用户加入频道后,SDK 会通知频道内的所有远端用户本地用户的 uname 和 uid,并在远端触发 on_remote_user_registered
回调。
uid
或 uname
。[in] | app_id | Agora 为 App 开发者签发的 App ID。 |
[in] | uname | 用户名。用户名,该参数为必填,最大不超过 255 字节,不可设为 NULL。请确保用户名的唯一性。以下为支持的字符集范围(共 89 个字符):
|
[in] | event_handler | 用于处理 Agora SDK 事件的一系列回调。 |
[in] | sdk_log_dir | 用于存放 Agora SDK 日志的目录地址。 如果 sdk_log_dir 被设为 NULL,则日记目录地址为:
|
__agora_api__ int agora_rtc_join_channel | ( | const char * | channel, |
const void * | token_ptr, | ||
size_t | token_len | ||
) |
加入频道。
该方法让本地用户加入指定频道。同一个频道内使用相同 App ID 的用户可以互相传输数据。
[in] | channel | 频道名,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
|
[in] | token_ptr | 用于鉴权的 Token。
|
[in] | token_len | Token 的内存大小(字节),取值范围为 [32, 512]。如果用户启用的是 App ID,则设为 0。 |
__agora_api__ int agora_rtc_leave_channel | ( | const char * | channel | ) |
离开频道。
停止在某频道传输数据后需要离开该频道。
[in] | channel | 频道名。设为 NULL 则离开所有频道。 |
__agora_api__ int agora_rtc_license_gen_credential | ( | char * | credential, |
unsigned int * | credential_len | ||
) |
生成设备唯一标识 Credential。
[out] | credential | 用于存放 Credential 的缓冲区。 |
[in,out] | credential_len | 缓冲区大小(字节)。
|
__agora_api__ int agora_rtc_license_verify | ( | const char * | certificate, |
int | certificate_len, | ||
const char * | credential, | ||
int | credential_len | ||
) |
认证 SDK。
启用了 Agora License 机制后,安装了 Agora SDK 的设备只有通过 Certificate 验证 才能加入 Agora 频道、使用数据传输功能。
[in] | certificate | 许可证 Certificate。 |
[in] | certificate_len | 许可证长度。 |
[in] | credential | 凭证 Credential。 |
[in] | credential_len | 凭证长度。 |
__agora_api__ int agora_rtc_mute_local_audio | ( | const char * | channel, |
int | mute | ||
) |
暂停/恢复发送本地音频流。
可以先暂停向所有频道发送音频流,然后恢复向指定频道发送音频流。
[in] | channel | 频道名。如果为所有频道(包括所有未来将加入的频道),则设为 NULL。 |
[in] | mute | 暂停/恢复发送本地音频流:
|
__agora_api__ int agora_rtc_mute_local_video | ( | const char * | channel, |
int | mute | ||
) |
暂停/恢复发送本地视频流。
可以先暂停向所有频道发送视频流,然后恢复向指定频道发送视频流。
[in] | channel | 频道名。如果为所有频道(包括所有未来将加入的频道),则设为 NULL。 |
[in] | mute | 暂停/恢复发送本地视频流:
|
__agora_api__ int agora_rtc_mute_remote_audio | ( | const char * | channel, |
uint32_t | remote_uid, | ||
int | mute | ||
) |
暂停/恢复接收指定频道内指定远端用户的音频流。
可以先暂停接收所有频道的音频流,然后恢复接收某个指定频道的音频流。
[in] | channel | 频道名。如果为所有频道(包括所有未来将加入的频道),则设为 NULL。 |
[in] | remote_uid | 远端用户 ID。设为 0 则停止接收频道内所有用户的音频流。 |
[in] | mute | 暂停/恢复接收远端音频流:
|
__agora_api__ int agora_rtc_mute_remote_video | ( | const char * | channel, |
uint32_t | remote_uid, | ||
int | mute | ||
) |
暂停/恢复接收指定频道内指定远端用户的视频流。
可以先暂停接收所有频道的视频流,然后恢复接收指定频道的视频流。
[in] | channel | 频道名。如果为所有频道(包括所有未来将加入的频道),则设为 NULL。 |
[in] | remote_uid | 远端用户 ID。设为 0 则停止接收频道内所有用户的视频流。 |
[in] | mute | 暂停/恢复接收远端视频流:
|
__agora_api__ int agora_rtc_renew_token | ( | const char * | channel, |
const void * | token_ptr, | ||
size_t | token_len | ||
) |
更新 Token。
[in] | channel | 频道名。如果为所有加入的频道,则设为 NULL。 |
[in] | token_ptr | 指向 Token 内存地址的指针。 |
[in] | token_len | Token 的内存大小(字节),取值范围为 [32, 512]。 |
__agora_api__ int agora_rtc_request_video_key_frame | ( | const char * | channel, |
uint32_t | remote_uid, | ||
uint8_t | stream_id | ||
) |
请求指定远端用户为指定远端视频流生成关键帧。
[in] | channel | 频道名。如果为所有频道,则设为 NULL。 |
[in] | remote_uid | 远端用户 ID。如果为频道内的所有用户,则设为 0。 |
[in] | stream_id | 视频流 ID。如果为所有视频流,则设为 0。 |
__agora_api__ int agora_rtc_send_audio_data | ( | const char * | channel, |
const void * | data_ptr, | ||
size_t | data_len, | ||
audio_frame_info_t * | info_ptr | ||
) |
向加入的频道发送音频帧。
频道内所有用户都能收到你发出的音频帧。
[in] | channel | 发送音频帧的目标频道。设为 NULL 则发送音频帧到所有加入的频道。 |
[in] | data_ptr | 音频包数据。 |
[in] | data_len | 音频包数据大小(字节)。 |
[in] | info_ptr | 音频帧配置,详见 audio_frame_info_t 。 |
__agora_api__ int agora_rtc_send_cmd | ( | const char * | channel, |
int | cmd, | ||
const void * | param_ptr, | ||
size_t | param_len | ||
) |
通过可靠数据通道 (RDT) 发送控制命令。
on_rdt_availability_changed
回调且 is_available
参数非 0 时,RDT 状态为可用。agora_rtc_send_cmd
是面向数据报的传输, 发送端与接收端不需要做额外的分组处理。agora_rtc_send_through_rdt
是面向字节流的传输。[in] | channel | 频道名。 |
[in] | cmd | 控制命令。 |
[in] | param_ptr | 控制命令的参数。如无,可设为 NULL。 |
[in] | param_len | 控制命令参数的长度(字节)。 |
__agora_api__ int agora_rtc_send_through_rdt | ( | const char * | channel, |
const void * | data_ptr, | ||
size_t | data_len | ||
) |
通过可靠数据通道 (RDT) 发送数据。
on_rdt_availability_changed
回调且 is_available
参数非 0 时,RDT 状态为可用。agora_rtc_send_cmd
是面向数据报的传输, 发送端与接收端不需要做额外的分组处理。agora_rtc_send_through_rdt
是面向字节流的传输。[in] | channel | 频道名。 |
[in] | data_ptr | 数据。 |
[in] | data_len | 数据大小(字节)。 |
__agora_api__ int agora_rtc_send_video_data | ( | const char * | channel, |
uint8_t | stream_id, | ||
const void * | data_ptr, | ||
size_t | data_len, | ||
video_frame_info_t * | info_ptr | ||
) |
向加入的频道发送视频帧。
频道内所有用户都能收到你发出的视频帧。
[in] | channel | 发送视频帧的目标频道。设为 NULL 则发送视频帧到所有加入的频道。 |
[in] | stream_id | 视频流的 ID。取值范围为 [0, 15]。 |
[in] | data_ptr | 视频包数据。 |
[in] | data_len | 视频包数据大小(字节)。 |
[in] | info_ptr | 视频帧配置,详见 video_frame_info_t 。 |
__agora_api__ int agora_rtc_set_bwe_param | ( | uint32_t | min_bps, |
uint32_t | max_bps, | ||
uint32_t | start_bps | ||
) |
设置 BWE (Bandwidth Estimation) 参数。
[in] | min_bps | 最大码率,单位为 bps。 |
[in] | max_bps | 最小码率,单位为 bps。 |
[in] | start_bps | 起始码率,单位为 bps。 |
__agora_api__ int agora_rtc_set_log_level | ( | int | level | ) |
设置 Agora SDK 的日志输出等级。
设置一个级别后,你可以看到该级别及之前所有级别的日志信息。
[in] | level | 日志输出等级。取值范围为 [0, 6]。 |