#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
结构体 | |
struct | video_frame_info_t |
struct | audio_frame_info_t |
struct | log_config_t |
struct | rtc_service_option_t |
struct | audio_codec_option_t |
struct | rtc_channel_options_t |
struct | agora_rtc_event_handler_t |
struct | agora_rtm_handler_t |
宏定义 | |
#define | __agora_api__ |
#define | AGORA_RTM_UID_MAX_LEN 64 |
#define | AGORA_RTM_DATA_MAX_LEN (32 * 1024) |
#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, const agora_rtc_event_handler_t *event_handler, rtc_service_option_t *option) |
__agora_api__ int | agora_rtc_set_log_level (rtc_log_level_e 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 char *user_id, const void *token_ptr, size_t token_len, rtc_channel_options_t *options) |
__agora_api__ int | agora_rtc_leave_channel (const char *channel) |
__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_login_rtm (const char *rtm_uid, const char *rtm_token, const agora_rtm_handler_t *handler) |
__agora_api__ int | agora_rtc_logout_rtm (void) |
__agora_api__ int | agora_rtc_send_rtm_data (const char *rtm_uid, uint32_t msg_id, const void *msg, size_t msg_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_set_cloud_proxy (cloud_proxy_type_e type) |
__agora_api__ int | agora_rtc_set_params (const char *params) |
__agora_api__ int | agora_rtc_fini (void) |
#define __agora_api__ |
#define AGORA_CERTIFICATE_MAX_LEN 1024 |
#define AGORA_CREDENTIAL_MAX_LEN 256 |
#define AGORA_RTM_DATA_MAX_LEN (32 * 1024) |
#define AGORA_RTM_UID_MAX_LEN 64 |
enum agora_err_code_e |
错误码。
enum area_code_e |
enum audio_codec_type_e |
enum audio_data_type_e |
enum cloud_proxy_type_e |
enum rtc_log_level_e |
日志输出级别。
enum rtm_err_code_e |
enum rtm_event_type_e |
enum video_data_type_e |
enum video_frame_rate_e |
enum video_frame_type_e |
__agora_api__ int agora_rtc_config_log | ( | int | size_per_file, |
int | max_file_count | ||
) |
配置 Agora SDK 的日志文件。
[in] | size_per_file | 每份日志文件的大小(字节)。取值范围为 [0, 10*1024*1024]。默认值为 1*1024*1024,即 1 MB。如果你将此参数设为 0,则代表关闭日志功能。 |
[in] | max_file_count | 日志文件数。取值范围为 [0, 100]。默认值为 10。如果你将此参数设为 0,则代表关闭日志功能。 |
__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 服务的资源。
const char* agora_rtc_get_version | ( | void | ) |
获取 SDK 版本。
__agora_api__ int agora_rtc_init | ( | const char * | app_id, |
const agora_rtc_event_handler_t * | event_handler, | ||
rtc_service_option_t * | option | ||
) |
初始化 Agora RTSA 服务。
[in] | app_id | Agora 为 App 开发者签发的 APP ID。 |
[in] | event_handler | 用于处理 Agora SDK 事件的一系列回调。 |
[in] | option | RTSA 服务配置选项,包括限定访问区域。详见 rtc_service_option_t 。 |
__agora_api__ int agora_rtc_join_channel | ( | const char * | channel, |
const char * | user_id, | ||
const void * | token_ptr, | ||
size_t | token_len, | ||
rtc_channel_options_t * | options | ||
) |
加入频道。
该方法让本地用户加入指定频道。同一个频道内使用相同 App ID 的用户可以互相传输数据。
[in] | channel | 频道名,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
|
[in] | user_id | 用户 ID。你需要根据 rtc_service_option_t 中 use_string_ui 的值进行不同设置:
|
[in] | token_ptr | 用于鉴权的 Token。
|
[in] | token_len | Token 的内存大小(字节),取值范围为 [32, 512]。如果用户启用的是 App ID,则设为 0。 |
[in] | options | 频道设置选项。详见 rtc_channel_options_t 。 |
__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_login_rtm | ( | const char * | rtm_uid, |
const char * | rtm_token, | ||
const agora_rtm_handler_t * | handler | ||
) |
登录云信令 (原 RTM) 服务。
[in] | rtm_uid | 云信令 (原 RTM) 用户 ID。该字符串不可超过 64 字节。不可设为空、NULL 或 "NULL" 。以下为支持的字符集范围:
|
[in] | rtm_token | 用于登录云信令 (原 RTM) 系统的动态密钥。详见《校验用户权限》。如果你没有开启 Token 鉴权,此参数可设为 NULL 。 |
[in] | handler | 云信令 (原 RTM) 回调。详见 agora_rtm_handler_t 。 |
__agora_api__ int agora_rtc_logout_rtm | ( | void | ) |
登出云信令 (原 RTM) 服务。
__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_rtm_data | ( | const char * | rtm_uid, |
uint32_t | msg_id, | ||
const void * | msg, | ||
size_t | msg_len | ||
) |
通过云信令 (原 RTM) 服务发送消息。
[in] | rtm_uid | 云信令 (原 RTM) 用户 ID。 |
[in] | msg_id | 消息 ID。 |
[in] | msg | 消息内容。仅支持 UTF-8 编码。 |
[in] | msg_len | 消息长度,单位是字节。最大不得超过 32 KB。 |
__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 | ||
) |
设置 bandwidth estimation (BWE) 参数。
[in] | min_bps | 最大码率,单位为 bps。 |
[in] | max_bps | 最小码率,单位为 bps。 |
[in] | start_bps | 起始码率,单位为 bps。 |
__agora_api__ int agora_rtc_set_cloud_proxy | ( | cloud_proxy_type_e | type | ) |
__agora_api__ int agora_rtc_set_log_level | ( | rtc_log_level_e | level | ) |
设置 Agora SDK 的日志输出等级。
设置一个级别后,你可以看到该级别及之前所有级别的日志信息。
[in] | level | 日志输出等级。详见 rtc_log_level_e 。 |
__agora_api__ int agora_rtc_set_params | ( | const char * | params | ) |
通过 JSON 配置 SDK 提供技术预览或特别定制功能。
JSON 选项默认不公开。声网工程师正在努力寻求以标准化方式公开 JSON 选项。
[in] | params | : JSON 字符串形式的参数。 |