agora::rtc 命名空间参考
- C++
更新时间不可用
类型定义说明
uid_t
typedef unsigned int agora::rtc::uid_ttrack_id_t
typedef unsigned int agora::rtc::track_id_tconn_id_t
typedef unsigned int agora::rtc::conn_id_tUSER_OFFLINE_REASON_TYPE
用户离线原因。
| 枚举值 | |
|---|---|
| 0: 用户主动离开。 | |
| 1:因过长时间收不到对方数据包,超时掉线。由于 SDK 使用的是不可靠通道,也有可能对方主动离开频道,但是本地没收到对方离开消息而误判为超时掉线。 | |
| 2: 用户身份从主播切换为观众。 | |
QUALITY_TYPE
网络质量类型。
| 枚举值 | |
|---|---|
| 0: 质量未知。 | |
| 1: 质量极好。 | |
| 2: 用户主观感觉和极好差不多,但码率可能略低于极好。 | |
| 3: 用户主观感受有瑕疵但不影响沟通。 | |
| 4: 勉强能沟通但不顺畅。 | |
| 5: 网络质量非常差,基本不能沟通。 | |
| 6: 网络连接断开,完全无法沟通。 | |
VIDEO_ORIENTATION
视频旋转信息。
| 枚举值 | |
|---|---|
| 0: 顺时针旋转 0 度。 | |
| 90: 顺时针旋转 90 度。 | |
| 180: 顺时针旋转 180 度。 | |
| 270: 顺时针旋转 270 度。 | |
FRAME_RATE
视频帧率。
| 枚举值 | |
|---|---|
| 1: 1 fps | |
| 7: 7 fps | |
| 10: 10 fps | |
| 15: 15 fps | |
| 24: 24 fps | |
| 30: 30 fps | |
| 60: 60 fps。仅适用于 Windows 和 macOS 平台。 | |
FRAME_WIDTH
视频帧宽度。
FRAME_HEIGHT
视频帧高度。
VIDEO_FRAME_TYPE
视频帧类型。
| 枚举值 | |
|---|---|
| 0:空白帧 | |
| 3:关键帧。对于 H.264 编码格式,SDK 把带有 sps 和 pps 信息的 I 帧归类为关键帧。 | |
| 4:Delta 帧。对于 H.264 编码格式,SDK 把 P 帧和不带 sps 和 pps 信息的 I 帧都归类为 Delta 帧。 | |
| 5:B 帧 | |
| 6:丢弃帧 | |
| 7:未知 | |
ORIENTATION_MODE
视频编码的方向模式。
| 枚举值 | |
|---|---|
| 0: (默认)该模式下 SDK 输出的视频方向与采集到的视频方向一致。接收端会根据收到的视频旋转信息对视频进行旋转。该模式适用于接收端可以调整视频方向的场景。 如果采集的视频是横屏模式,则输出的视频也是横屏模式。 如果采集的视频是竖屏模式,则输出的视频也是竖屏模式。 | |
| 1: 该模式下 SDK 固定输出风景(横屏)模式的视频。如果采集到的视频是竖屏模式,则视频编码器会对其进行裁剪。该模式适用于接收端无法调整视频方向的场景,如直推 CDN。 | |
| 2: 该模式下 SDK 固定输出人像(竖屏)模式的视频,如果采集到的视频是横屏模式,则视频编码器会对其进行裁剪。该模式适用于接收端无法调整视频方向的场景,如直推 CDN。 | |
DEGRADATION_PREFERENCE
带宽受限时的视频编码降级偏好。
| 枚举值 | |
|---|---|
| 0: (默认)带宽受限时,视频编码时优先降低视频帧率,维持视频质量不变。该降级偏好适用于画质优先的场景。 | |
| 1: 带宽受限时,视频编码时优先降低视频质量,维持视频帧率不变。该降级偏好适用于流畅性优先且允许画质降低的场景。 | |
| 2: 带宽受限时,视频编码时同时降低视频帧率和视频质量。MAINTAIN_BALANCED 的降幅比 MAINTAIN_QUALITY 和 MAINTAIN_FRAMERATE 降幅更低, 适用于流畅性和画质均有限的场景。 | |
| 3: 带宽受限时,视频编码时优先降低视频帧率。 | |
VIDEO_CODEC_TYPE
视频编码类型。
| 枚举值 | |
|---|---|
| 0: 无 | |
| 1: VP8 | |
| 2: H.264 | |
| 3: H.265 | |
| 5: VP9 | |
| 6: Generic | |
| 7: Generic H264 | |
| 12: AV1 | |
| 20: JPEG | |
AUDIO_CODEC_TYPE
音频编码类型。
| 枚举值 | |
|---|---|
| 1: OPUS | |
| 3: PCMA | |
| 4: PCMU | |
| 5: G722 | |
| 8: AAC LC | |
| 9: HE AAC | |
| 11: HEAAC2 | |
VIDEO_STREAM_TYPE
视频流类型。
VIDEO_MIRROR_MODE_TYPE
镜像模式类型。
| 枚举值 | |
|---|---|
| 0:(默认)由 SDK 决定镜像模式。 | |
| 1: 启用镜像模式。 | |
| 2: 关闭镜像模式。 | |
SIMULCAST_STREAM_MODE
发送视频流的模式。
| 枚举值 | |
|---|---|
| -1:默认不发送小流,直至收到接收端发起的订阅小流申请时,自动切换为发送小流模式。 | |
| 0:始终不发送小流。 | |
| 1:始终发送小流。 | |
VIDEO_SOURCE_TYPE
视频源的类型。
| 枚举值 | |
|---|---|
| 0:(默认)第一个摄像头。 | |
| 0:摄像头。 | |
| 1:第二个摄像头。 | |
| 2:第一个屏幕。 | |
| 2:屏幕。 | |
| 3:第二个屏幕。 | |
| 4:自定义的视频源。 | |
| 5:媒体播放器共享的视频源。 | |
| 6:视频源为 PNG 图片。 | |
| 7:视频源为 JPEG 图片。 | |
| 8:视频源为 GIF 图片。 | |
| 9:视频源为网络获取的远端视频。 | |
| 10:转码后的视频源。 | |
| 11:未知的视频源。 | |
CLIENT_ROLE_TYPE
用户角色类型。
| 枚举值 | |
|---|---|
| 1: 主播。主播可以同时发送和接收媒体流。 | |
| 2: 观众。观众只能接收媒体流。 | |
QUALITY_ADAPT_INDICATION
视频质量变化提示。
| 枚举值 | |
|---|---|
| 0:本地视频质量不变。 | |
| 1:由于网络带宽增加导致质量提升。 | |
| 2:由于网络带宽降低导致质量下降。 | |
EXPERIENCE_QUALITY_TYPE
接收远端音频时,本地用户的主观体验质量。
EXPERIENCE_POOR_REASON
接收远端音频时,本地用户主观体验质量较差的原因。
| 枚举值 | |
|---|---|
| 0: 无原因,说明主观体验质量较好。 | |
| 1: 远端用户的网络较差。 | |
| 2: 本地用户的网络较差。 | |
| 4: 本地用户的 Wi-Fi 或者移动数据网络信号弱。 | |
| 8: 本地用户同时开启 Wi-Fi 和蓝牙,二者信号互相干扰,导致音频传输质量下降。 | |
AUDIO_PROFILE_TYPE
音频属性。设置采样率,码率,编码模式和声道数。
| 枚举值 | |
|---|---|
0: 默认音频场景。
| |
| 1: 指定 32 KHz 采样率,语音编码,单声道,编码码率最大值为 18 Kbps。 | |
| 2: 指定 48 KHz 采样率,音乐编码,单声道,编码码率最大值为 64 Kbps。 | |
| 3: 指定 48 KHz 采样率,音乐编码,双声道,编码码率最大值为 80 Kbps。 | |
| 4: 指定 48 KHz 采样率,音乐编码,单声道,编码码率最大值为 96 Kbps。 | |
| 5: 指定 48 KHz 采样率,音乐编码,双声道,编码码率最大值为 128 Kbps。 | |
| 6: 指定 16 kHz 采样率,语音编码,单声道,应用回声消除算法 AES。 | |
| 枚举值边界。 | |
AUDIO_SCENARIO_TYPE
音频应用场景。
| 枚举值 | |
|---|---|
| 0: (默认)自动场景,根据用户角色和音频路由自动匹配合适的音质。 | |
| 3: 高音质场景,适用于音乐为主的场景。 | |
| 5: 聊天室场景,适用于用户需要频繁上下麦的场景。该场景下,观众会收到申请麦克风权限的弹窗提示。 | |
| 7: 合唱场景,适用于网络条件良好,要求极低延时的实时合唱场景。 | |
| 8: 会议场景,适用于人声为主的多人会议。 | |
| 枚举值边界。 | |
LOCAL_AUDIO_STREAM_STATE
本地音频状态。
| 枚举值 | |
|---|---|
| 0: 本地音频位于初始状态。 | |
| 1: 音频录制设备成功启动。 | |
| 2: 第一个音频帧成功完成编码。 | |
| 3: 本地音频启动失败。 | |
LOCAL_AUDIO_STREAM_ERROR
本地音频失败的原因。
| 枚举值 | |
|---|---|
| 0: 本地音频状态正常。 | |
| 1: 原因未知。 | |
| 2: 没有权限使用本地音频设备。 | |
| 3: 麦克风被占用。 | |
| 4: 本地音频录制失败。检查录制设备是否正常工作。 | |
| 5: 本地音频编码失败。 | |
LOCAL_VIDEO_STREAM_STATE
本地视频状态类型。
| 枚举值 | |
|---|---|
| 0: 初始状态。 | |
| 1: 视频采集已开始。 | |
| 2: 第一个视频帧已编码。 | |
| 3: 本地视频发送失败。 | |
LOCAL_VIDEO_STREAM_ERROR
本地视频出错原因。
| 枚举值 | |
|---|---|
| 0: 本地视频状态正常。 | |
| 1: 出错原因不明确。 | |
| 2: 没有权限启动本地视频采集设备。 | |
| 3: 本地视频采集设备正在使用中。 | |
| 4: 本地视频采集失败,建议检查采集设备是否正常工作。 | |
| 5: 本地视频编码失败。 | |
REMOTE_AUDIO_STATE
远端音频流状态。
| 枚举值 | |
|---|---|
0:远端音频默认初始状态。在 REMOTE_AUDIO_STATE_REASON_LOCAL_MUTED、 REMOTE_AUDIO_STATE_REASON_REMOTE_MUTED 或 REMOTE_AUDIO_STATE_REASON_REMOTE_OFFLINE 的情况下,会报告该状态。 | |
| 1: 本地用户已接收远端音频首包。 | |
2: 远端音频流正在解码,正常播放。在 REMOTE_AUDIO_STATE_REASON_NETWORK_RECOVERY、 REMOTE_AUDIO_STATE_REASON_LOCAL_UNMUTED 或 REMOTE_AUDIO_STATE_REASON_REMOTE_UNMUTED 的情况下, 会报告该状态。 | |
3: 远端音频流卡顿。在 REMOTE_AUDIO_STATE_REASON_NETWORK_CONGESTION 的情况下,会报告该状态。 | |
4: 远端音频流播放失败。在 REMOTE_AUDIO_STATE_REASON_INTERNAL 的情况下,会报告该状态。 | |
REMOTE_AUDIO_STATE_REASON
远端音频流状态切换原因。
| 枚举值 | |
|---|---|
| 0: 音频状态发生改变时,会报告该原因。 | |
| 1: 网络阻塞。 | |
| 2: 网络恢复正常。 | |
| 3: 本地用户停止接收远端音频流或本地用户禁用音频模块。 | |
| 4: 本地用户恢复接收远端音频流或本地用户启动音频模块。 | |
| 5: 远端用户停止发送音频流或远端用户禁用音频模块。 | |
| 6: 远端用户恢复发送音频流或远端用户启用音频模块。 | |
| 7: 远端用户离开频道。 | |
REMOTE_VIDEO_STATE
远端视频流状态。
| 枚举值 | |
|---|---|
0: 远端视频默认初始状态。在 REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED、REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED 或 REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE 的情况下,会报告该状态。 | |
| 1: 本地用户已接收远端视频首包。 | |
2: 远端视频流正在解码,正常播放。 在 REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY、REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED、REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED 或 REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY 的情况下, 会报告该状态。 | |
3: 远端视频流卡顿。在 REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION 或 REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK 的情况下,会报告该状态。 | |
4: 远端视频流播放失败。在 REMOTE_VIDEO_STATE_REASON_INTERNAL 的情况下,会报告该状态。 | |
REMOTE_VIDEO_STATE_REASON
远端视频流状态切换原因。
| 枚举值 | |
|---|---|
| 0: 视频状态发生改变时,会报告该原因。 | |
| 1: 网络阻塞。 | |
| 2: 网络恢复正常。 | |
| 3: 本地用户停止接收远端视频流或本地用户禁用视频模块。 | |
| 4: 本地用户恢复接收远端视频流或本地用户启动视频模块。 | |
| 5: 远端用户停止发送视频流或远端用户禁用视频模块。 | |
| 6: 远端用户恢复发送视频流或远端用户启用视频模块。 | |
| 7: 远端用户离开频道。 | |
| 8: 弱网情况下,远端音视频流回退为音频流。 | |
| 9: 网络情况改善时,远端音频流恢复为音视频流。 | |
REMOTE_VIDEO_DOWNSCALE_LEVEL
远端视频缩小级别。级别越高,缩小程度越高。
| 枚举值 | |
|---|---|
| 0:不缩小。 | |
| 1:级别 1。 | |
| 2:级别 2。 | |
| 3:级别 3。 | |
| 4:级别 4。 | |
CONNECTION_STATE_TYPE
网络连接状态。
| 枚举值 | |
|---|---|
| 1: 网络连接断开。 | |
| 2: 建立网络连接中。 | |
| 3: 网络已连接。 | |
| 4: 重新建立网络连接中。 | |
| 5: 网络连接失败。 | |
LASTMILE_PROBE_RESULT_STATE
Last mile 质量探测结果的状态。
| 枚举值 | |
|---|---|
| 1: 表示本次 last mile 质量探测的结果是完整的。 | |
| 2: 表示本次 last mile 质量探测未进行带宽预测,因此结果不完整。一个可能的原因是测试资源暂时受限。 | |
| 3: 未进行 last mile 质量探测。一个可能的原因是网络连接中断。 | |
CONNECTION_CHANGED_REASON_TYPE
连接状态变化原因。
| 枚举值 | |
|---|---|
| 0: 建立网络连接中。 | |
| 1: 成功加入频道。 | |
| 2: 网络连接中断。 | |
| 3: 网络连接被服务器禁止。 | |
| 4: 加入频道失败。 | |
| 5: 离开频道。 | |
| 6: 不是有效的 APP ID。请更换有效的 APP ID 重新加入频道。 | |
| 7: 不是有效的频道名。请更换有效的频道名重新加入频道。 | |
8: 生成的 Token 无效。一般有以下原因:
| |
| 9: 生成的 Token 无效。 | |
| 10: 此用户被服务器禁止。 | |
| 11: 由于设置了代理服务器,SDK 尝试重连。 | |
| 12: 更新 Token 引起网络连接状态改变。 | |
| 13: 客户端 IP 地址变更,可能是由于网络类型,或网络运营商的 IP 或端口发生改变引起。 | |
| 14: SDK 和服务器连接保活超时,进入自动重连状态。 | |
| 15: 重新加入频道成功。 | |
| 16: SDK 和服务器失去连接。 | |
| 17: 连接状态变化由回声测试引起。 | |
| 18: 用户更改了本地 IP 地址。 | |
NETWORK_TYPE
网络连接类型。
| 枚举值 | |
|---|---|
| -1: 网络连接类型未知。 | |
| 0: 网络连接已断开。 | |
| 1: 网络类型为 LAN。 | |
| 2: 网络类型为 Wi-Fi(包含热点)。 | |
| 3: 网络类型为 2G 移动网络。 | |
| 4: 网络类型为 3G 移动网络。 | |
| 5: 网络类型为 4G 移动网络。 | |
AREA_CODE
访问区域。
| 枚举值 | |
|---|---|
| 0x00000001:中国大陆。 | |
| 0x00000002:北美区域。 | |
| 0x00000004:欧洲区域。 | |
| 0x00000008:除中国大陆以外的亚洲区域。 | |
| 0x00000010:日本。 | |
| 0x00000020:印度。 | |
| 0xFFFFFFFF:(默认)全球。 | |
ENCRYPTION_MODE
内置加密模式。
ENCRYPTION_ERROR_TYPE
内置加密的错误类型。
| 枚举值 | |
|---|---|
| 0:内部原因。 | |
| 1:解密错误。请确保接收端和发送端使用的加密模式或密钥一致。 | |
| 2:加密错误。 | |
MAX_USER_ACCOUNT_LENGTH_TYPE
user account 的最大长度。
STREAM_SUBSCRIBE_STATE
流订阅状态。
| 枚举值 | |
|---|---|
| 0:加入频道后的初始订阅状态。 | |
| 1:订阅失败。 | |
| 2:正在订阅。 | |
| 3:收到了远端流,订阅成功。 | |
STREAM_PUBLISH_STATE
流发布状态。
| 枚举值 | |
|---|---|
| 0: 加入频道后的初始发布状态。 | |
| 1: 发布失败。 | |
| 2: 正在发布。 | |
| 3: 发布成功。 | |
TCcMode
enum agora::rtc::TCcMode阻塞控制模块选项。
BYTES_PER_SAMPLE
每个样本的字节数。
RAW_AUDIO_FRAME_OP_MODE_TYPE
onRecordAudioFrame 或 onPlaybackAudioFrame 回调中返回的音频数据的使用模式。
| 枚举值 | |
|---|---|
| 0: 只读模式,用户仅从 AudioFrame 获取原始数据,不作任何修改。 | |
| 2: 读写模式, 用户从 AudioFrame 获取并修改数据,并返回给 SDK 进行编码传输。 | |
RTMP_CONNECTION_ERROR
推流错误信息。
| 枚举值 | |
|---|---|
| 0: 推流成功。 | |
| 1: 一般性错误。 | |
| 2: 推流 URL 无效。请检查输入的 URL 是否正确。 | |
| 3: 该推流 URL 已用于推流。如果你想开始新的推流,请使用新的推流 URL。 | |
RTMP_CONNECTION_STATE
SDK 与 CDN 的连接状态。
| 枚举值 | |
|---|---|
1: SDK 与 CDN 断开连接。 以下操作会让 SDK 进入该状态:
| |
2: SDK 正在连接 CDN。 调用 connect 连接 CDN 的过程中,SDK 会进入该状态。 | |
3: SDK 已连接 CDN。 调用 connect 成功连接 CDN 时,SDK 会进入该状态, 你可以开始向 CDN 推流。 | |
4: SDK 正在重新连接 CDN。 在弱网环境或用户切换网络类型等情况下,如果 SDK 与 CDN 断开连接,SDK 会尝试重新连接 CDN 并进入该状态。 | |
5: SDK 连接 CDN 失败。 以下情况会让 SDK 进入该状态:
该状态下,如需连接 CDN,你需要先调用 disconnect 断开连接, 再调用 connect。 | |
6: SDK 已重新连接 CDN。 在弱网环境或用户切换网络类型等情况下,如果 SDK 与 CDN 断开连接,则 SDK 重新连接 CDN 成功时会进入该状态。 你可以继续向 CDN 推流。 | |
PublishAudioError
推送音频帧失败的错误码。
PublishVideoError
推送视频帧失败的错误码。
ImageType
图像类型。
StreamLayerIndexInternal
定义 YUV 视频流的索引,用于标识不同的流。
| 枚举值 | |
|---|---|
1: 第 1 路流。 | |
2: 第 2 路流。 | |
3: 第 3 路流。 | |
4: 第 4 路流。 | |
5: 第 5 路流。 | |
6: 第 6 路流。 | |
7: 视频小流。 | |
8: 枚举值边界。 | |
VideoTrackType
视频轨道类型。
变量说明
STANDARD_BITRATE
const int agora::rtc::STANDARD_BITRATE = 0(推荐) 标准码率模式。该模式下,视频的码率是基准码率的两倍。
COMPATIBLE_BITRATE
const int agora::rtc::COMPATIBLE_BITRATE = -1适配码率模式。该模式下,视频码率与基准码率一致。直播时如果选择该模式,视频帧率可能会低于设置的值。
DEFAULT_CONNECTION_ID
const unsigned int agora::rtc::DEFAULT_CONNECTION_ID = 0DUMMY_CONNECTION_ID
const unsigned int agora::rtc::DUMMY_CONNECTION_ID =(std::numeric_limits<unsigned int>::max)()