类型定义 | |
typedef unsigned int | uid_t |
typedef void * | view_t |
typedef struct agora::rtc::TranscodingUser | TranscodingUser |
typedef struct agora::rtc::RtcImage | RtcImage |
typedef struct agora::rtc::LiveTranscoding | LiveTranscoding |
typedef struct agora::rtc::Rect | Rect |
typedef struct agora::rtc::WatermarkOptions | WatermarkOptions |
变量 | |
const int | STANDARD_BITRATE = 0 |
const int | COMPATIBLE_BITRATE = -1 |
const int | DEFAULT_MIN_BITRATE = -1 |
typedef unsigned int agora::rtc::uid_t |
typedef void* agora::rtc::view_t |
typedef struct agora::rtc::TranscodingUser agora::rtc::TranscodingUser |
TranscodingUser 用于管理参与旁路直播的音视频转码合图的用户。最多支持 17 人同时参与转码合图。
typedef struct agora::rtc::RtcImage agora::rtc::RtcImage |
图像属性。
用于设置直播视频的水印和背景图片的属性。
typedef struct agora::rtc::LiveTranscoding agora::rtc::LiveTranscoding |
LiveTranscoding 定义。
typedef struct agora::rtc::Rect agora::rtc::Rect |
typedef struct agora::rtc::WatermarkOptions agora::rtc::WatermarkOptions |
待添加的水印图片的设置选项。
音乐文件播放状态。
枚举值 | |
---|---|
AUDIO_MIXING_STATE_PLAYING | 710: 音乐文件正常播放。 该状态表示 SDK 处于以下阶段:
|
AUDIO_MIXING_STATE_PAUSED | 711: 音乐文件暂停播放。 该状态表示 SDK 成功调用 pauseAudioMixing 暂停播放音乐文件。 |
AUDIO_MIXING_STATE_STOPPED | 713: 音乐文件停止播放。 该状态表示 SDK 成功调用 stopAudioMixing 停止播放音乐文件。 |
AUDIO_MIXING_STATE_FAILED | 714: 音乐文件播放失败。 错误类型详见 AUDIO_MIXING_ERROR_TYPE |
本地视频状态
枚举值 | |
---|---|
LOCAL_VIDEO_STREAM_STATE_STOPPED | 0: 本地视频默认初始状态。 |
LOCAL_VIDEO_STREAM_STATE_CAPTURING | 1: 本地视频采集设备启动成功。调用 startScreenCaptureByWindowId 方法共享窗口且共享窗口为最大化时,也会报告该状态。 |
LOCAL_VIDEO_STREAM_STATE_ENCODING | 2: 本地视频首帧编码成功。 |
LOCAL_VIDEO_STREAM_STATE_FAILED | 3: 本地视频启动失败。 |
本地视频出错原因
枚举值 | |
---|---|
LOCAL_VIDEO_STREAM_ERROR_OK | 0: 本地视频状态正常。 |
LOCAL_VIDEO_STREAM_ERROR_FAILURE | 1: 出错原因不明确。 |
LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION | 2: 没有权限启动本地视频采集设备。 |
LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY | 3: 本地视频采集设备正在使用中。 |
LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE | 4: 本地视频采集失败,建议检查采集设备是否正常工作。 |
LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE | 5: 本地视频编码失败。 |
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_MINIMIZED | 11: 调用 startScreenCaptureByWindowId 方法共享窗口时,共享窗口处于最小化的状态。 |
本地音频出错原因
网络质量。
设置视频显示模式。
枚举值 | |
---|---|
RENDER_MODE_HIDDEN | 1: 视频尺寸等比缩放。优先保证视窗被填满。因视频尺寸与显示视窗尺寸不一致而多出的视频将被截掉。 |
RENDER_MODE_FIT | 2: 视频尺寸等比缩放。优先保证视频内容全部显示。因视频尺寸与显示视窗尺寸不一致造成的视窗未被填满的区域填充黑色。 |
RENDER_MODE_ADAPTIVE |
|
RENDER_MODE_FILL | 4: 视频尺寸进行缩放和拉伸以充满显示视窗。 |
枚举值 | |
---|---|
VIDEO_PROFILE_LANDSCAPE_120P |
|
VIDEO_PROFILE_LANDSCAPE_120P_3 |
|
VIDEO_PROFILE_LANDSCAPE_180P |
|
VIDEO_PROFILE_LANDSCAPE_180P_3 |
|
VIDEO_PROFILE_LANDSCAPE_180P_4 |
|
VIDEO_PROFILE_LANDSCAPE_240P |
|
VIDEO_PROFILE_LANDSCAPE_240P_3 |
|
VIDEO_PROFILE_LANDSCAPE_240P_4 |
|
VIDEO_PROFILE_LANDSCAPE_360P |
|
VIDEO_PROFILE_LANDSCAPE_360P_3 |
|
VIDEO_PROFILE_LANDSCAPE_360P_4 |
|
VIDEO_PROFILE_LANDSCAPE_360P_6 |
|
VIDEO_PROFILE_LANDSCAPE_360P_7 |
|
VIDEO_PROFILE_LANDSCAPE_360P_8 |
|
VIDEO_PROFILE_LANDSCAPE_360P_9 |
|
VIDEO_PROFILE_LANDSCAPE_360P_10 |
|
VIDEO_PROFILE_LANDSCAPE_360P_11 |
|
VIDEO_PROFILE_LANDSCAPE_480P |
|
VIDEO_PROFILE_LANDSCAPE_480P_3 |
|
VIDEO_PROFILE_LANDSCAPE_480P_4 |
|
VIDEO_PROFILE_LANDSCAPE_480P_6 |
|
VIDEO_PROFILE_LANDSCAPE_480P_8 |
|
VIDEO_PROFILE_LANDSCAPE_480P_9 |
|
VIDEO_PROFILE_LANDSCAPE_480P_10 |
|
VIDEO_PROFILE_LANDSCAPE_720P |
|
VIDEO_PROFILE_LANDSCAPE_720P_3 |
|
VIDEO_PROFILE_LANDSCAPE_720P_5 |
|
VIDEO_PROFILE_LANDSCAPE_720P_6 |
|
VIDEO_PROFILE_LANDSCAPE_1080P |
|
VIDEO_PROFILE_LANDSCAPE_1080P_3 |
|
VIDEO_PROFILE_LANDSCAPE_1080P_5 |
|
VIDEO_PROFILE_LANDSCAPE_1440P |
|
VIDEO_PROFILE_LANDSCAPE_1440P_2 |
|
VIDEO_PROFILE_LANDSCAPE_4K |
|
VIDEO_PROFILE_LANDSCAPE_4K_3 |
|
VIDEO_PROFILE_PORTRAIT_120P |
|
VIDEO_PROFILE_PORTRAIT_120P_3 |
|
VIDEO_PROFILE_PORTRAIT_180P |
|
VIDEO_PROFILE_PORTRAIT_180P_3 |
|
VIDEO_PROFILE_PORTRAIT_180P_4 |
|
VIDEO_PROFILE_PORTRAIT_240P |
|
VIDEO_PROFILE_PORTRAIT_240P_3 |
|
VIDEO_PROFILE_PORTRAIT_240P_4 |
|
VIDEO_PROFILE_PORTRAIT_360P |
|
VIDEO_PROFILE_PORTRAIT_360P_3 |
|
VIDEO_PROFILE_PORTRAIT_360P_4 |
|
VIDEO_PROFILE_PORTRAIT_360P_6 |
|
VIDEO_PROFILE_PORTRAIT_360P_7 |
|
VIDEO_PROFILE_PORTRAIT_360P_8 |
|
VIDEO_PROFILE_PORTRAIT_360P_9 |
|
VIDEO_PROFILE_PORTRAIT_360P_10 |
|
VIDEO_PROFILE_PORTRAIT_360P_11 |
|
VIDEO_PROFILE_PORTRAIT_480P |
|
VIDEO_PROFILE_PORTRAIT_480P_3 |
|
VIDEO_PROFILE_PORTRAIT_480P_4 |
|
VIDEO_PROFILE_PORTRAIT_480P_6 |
|
VIDEO_PROFILE_PORTRAIT_480P_8 |
|
VIDEO_PROFILE_PORTRAIT_480P_9 |
|
VIDEO_PROFILE_PORTRAIT_480P_10 |
|
VIDEO_PROFILE_PORTRAIT_720P |
|
VIDEO_PROFILE_PORTRAIT_720P_3 |
|
VIDEO_PROFILE_PORTRAIT_720P_5 |
|
VIDEO_PROFILE_PORTRAIT_720P_6 |
|
VIDEO_PROFILE_PORTRAIT_1080P |
|
VIDEO_PROFILE_PORTRAIT_1080P_3 |
|
VIDEO_PROFILE_PORTRAIT_1080P_5 |
|
VIDEO_PROFILE_PORTRAIT_1440P |
|
VIDEO_PROFILE_PORTRAIT_1440P_2 |
|
VIDEO_PROFILE_PORTRAIT_4K |
|
VIDEO_PROFILE_PORTRAIT_4K_3 |
|
VIDEO_PROFILE_DEFAULT |
|
音频属性。
设置采样率,码率,编码模式和声道数。
设置音频应用场景。
频道使用场景。
枚举值 | |
---|---|
CHANNEL_PROFILE_COMMUNICATION | 0: (默认)通信场景。该场景下,频道内所有用户都可以发布和接收音、视频流。适用于语音通话、视频群聊等应用场景。 |
CHANNEL_PROFILE_LIVE_BROADCASTING | 1: 直播场景。该场景有主播和观众两种用户角色,可以通过 setClientRole 设置。主播可以发布和接收音视频流,观众直接接收流。适用于语聊房、视频直播、互动大班课等应用场景。 |
CHANNEL_PROFILE_GAME | 2: 游戏语音场景。该场景默认使用低功耗低码率的编解码器,且频道内任何用户都可以自由发言,适用于游戏场景。
|
推流状态
枚举值 | |
---|---|
RTMP_STREAM_PUBLISH_STATE_IDLE | 推流未开始或已结束。成功调用 removePublishStreamUrl 方法删除推流地址后,也会返回该状态。 |
RTMP_STREAM_PUBLISH_STATE_CONNECTING | 正在连接 Agora 推流服务器和 RTMP 服务器。调用 addPublishStreamUrl 方法后,会返回该状态。 |
RTMP_STREAM_PUBLISH_STATE_RUNNING | 推流正在进行。成功推流后,会返回该状态。 |
RTMP_STREAM_PUBLISH_STATE_RECOVERING | 正在恢复推流。当 CDN 出现异常,或推流短暂中断时,SDK 会自动尝试恢复推流,并返回该状态。
|
RTMP_STREAM_PUBLISH_STATE_FAILURE | 推流失败。失败后,你可以通过返回的错误码排查错误原因,也可以再次调用 addPublishStreamUrl 重新尝试推流。 |
推流错误信息
枚举值 | |
---|---|
RTMP_STREAM_PUBLISH_ERROR_OK | 推流成功 |
RTMP_STREAM_PUBLISH_ERROR_INVALID_ARGUMENT | 参数无效。请检查输入参数是否正确。例如如果你在调用 addPublishStreamUrl 前没有调用 setLiveTranscoding 设置转码参数,SDK 会返回该错误。 |
RTMP_STREAM_PUBLISH_ERROR_ENCRYPTED_STREAM_NOT_ALLOWED | 推流已加密,不能推流。 |
RTMP_STREAM_PUBLISH_ERROR_CONNECTION_TIMEOUT | 推流超时未成功。可调用 addPublishStreamUrl 重新推流。 |
RTMP_STREAM_PUBLISH_ERROR_INTERNAL_SERVER_ERROR | 推流服务器出现错误。请调用 addPublishStreamUrl 重新推流。 |
RTMP_STREAM_PUBLISH_ERROR_RTMP_SERVER_ERROR | RTMP 服务器出现错误。 |
RTMP_STREAM_PUBLISH_ERROR_TOO_OFTEN | 推流请求过于频繁。 |
RTMP_STREAM_PUBLISH_ERROR_REACH_LIMIT | 单个主播的推流地址数目达到上线 10。请删掉一些不用的推流地址再增加推流地址。 |
RTMP_STREAM_PUBLISH_ERROR_NOT_AUTHORIZED | 主播操作不属于自己的流。例如更新其他主播的流参数、停止其他主播的流。请检查 App 逻辑。 |
RTMP_STREAM_PUBLISH_ERROR_STREAM_NOT_FOUND | 服务器未找到这个流。 |
RTMP_STREAM_PUBLISH_ERROR_FORMAT_NOT_SUPPORTED | 推流地址格式有错误。请检查推流地址格式是否正确。 |
导入的外部视频源状态。
onRecordAudioFrame 或 onPlaybackAudioFrame 回调中返回的音频数据的使用模式
枚举值 | |
---|---|
RAW_AUDIO_FRAME_OP_MODE_READ_ONLY | 0: 只读模式,用户仅从 AudioFrame 获取原始数据,不作任何修改。例如: 若用户通过 Agora SDK 采集数据,自己进行 RTMP 推流,则可以选择该模式。 |
RAW_AUDIO_FRAME_OP_MODE_WRITE_ONLY | 1: 只写模式,用户替换 AudioFrame 中的数据以供 SDK 编码传输。例如: 若用户自行采集数据,可选择该模式。 |
RAW_AUDIO_FRAME_OP_MODE_READ_WRITE | 2: 读写模式, 用户从 AudioFrame 获取并修改数据、修改,并返回给 SDK 进行编码传输。例如: 若用户自己有音效处理模块,且想要根据实际需要对数据进行前处理(例如变声),则可以选择该模式。 |
语音音效均衡波段的中心频率。
各混响音效 Key 所对应的值。
预设的语音变声效果。
预设的语音混响效果
远端音频流状态
枚举值 | |
---|---|
REMOTE_AUDIO_STATE_STOPPED | 0: 远端音频流默认初始状态。在 REMOTE_AUDIO_REASON_LOCAL_MUTED (3)、 REMOTE_AUDIO_REASON_REMOTE_MUTED (5) 或 REMOTE_AUDIO_REASON_REMOTE_OFFLINE (7) 的情况下,会报告该状态。 |
REMOTE_AUDIO_STATE_STARTING | 1: 本地用户已接收远端音频首包。 |
REMOTE_AUDIO_STATE_DECODING | 2: 远端音频流正在解码,正常播放。在 REMOTE_AUDIO_REASON_NETWORK_RECOVERY (2)、 REMOTE_AUDIO_REASON_LOCAL_UNMUTED (4) 或 REMOTE_AUDIO_REASON_REMOTE_UNMUTED (6) 的情况下,会报告该状态。 |
REMOTE_AUDIO_STATE_FROZEN | 3: 远端音频流卡顿。在 REMOTE_AUDIO_REASON_NETWORK_CONGESTION (1) 的情况下,会报告该状态。 |
REMOTE_AUDIO_STATE_FAILED | 4: 远端音频流播放失败。在 REMOTE_AUDIO_REASON_INTERNAL (0) 的情况下,会报告该状态。 |
远端音频流状态改变的具体原因
远端视频流状态。
枚举值 | |
---|---|
REMOTE_VIDEO_STATE_STOPPED | 0: 远端视频默认初始状态。在 REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED (3)、 REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED (5) 或 REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE (7) 的情况下,会报告该状态。 |
REMOTE_VIDEO_STATE_STARTING | 1: 本地用户已接收远端视频首包。 |
REMOTE_VIDEO_STATE_DECODING | 2: 远端视频流正在解码,正常播放。在 REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY (2)、 REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED (4)、 REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED (6) 或 REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY (9) 的情况下, 会报告该状态。 |
REMOTE_VIDEO_STATE_FROZEN | 3: 远端视频流卡顿。在 REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION (1) 或 REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK (8) 的情况下,会报告该状态。 |
REMOTE_VIDEO_STATE_FAILED | 4: 远端视频流播放失败。在 REMOTE_VIDEO_STATE_REASON_INTERNAL (0) 的情况下,会报告该状态。 |
发布状态。
枚举值 | |
---|---|
PUB_STATE_IDLE | 0: 加入频道后的初始发布状态。 |
PUB_STATE_NO_PUBLISHED | 1: 发布失败。可能是因为:
|
PUB_STATE_PUBLISHING | 2: 正在发布。 |
PUB_STATE_PUBLISHED | 3: 发布成功。 |
订阅状态。
枚举值 | |
---|---|
SUB_STATE_IDLE | 0: 加入频道后的初始订阅状态。 |
SUB_STATE_NO_SUBSCRIBED | 1: 订阅失败。可能是因为:
|
SUB_STATE_SUBSCRIBING | 2: 正在订阅。 |
SUB_STATE_SUBSCRIBED | 3: 收到了远端流,订阅成功。 |
远端视频流状态切换原因。
视频编码的方向模式。
音视频流回退处理选项。
枚举值 | |
---|---|
STREAM_FALLBACK_OPTION_DISABLED | 0: 上行/下行网络较弱时,不对音视频流作回退处理,但不能保证音视频流的质量。 |
STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW | 1: 在下行网络条件较差时只接收视频小流(低分辨率、低码率视频流)。该选项只对 setRemoteSubscribeFallbackOption 有效,对 setLocalPublishFallbackOption 方法无效。 |
STREAM_FALLBACK_OPTION_AUDIO_ONLY | 2: 上行/下行网络较弱时,先尝试只接收视频小流(低分辨率、低码率视频流);如果网络环境无法显示视频,则再回退到只接收远端订阅的音频流。 |
摄像头采集偏好。
枚举值 | |
---|---|
CAPTURER_OUTPUT_PREFERENCE_AUTO | (默认)自动调整采集参数。SDK 根据实际的采集设备性能及网络情况,选择合适的摄像头输出参数,在设备性能及视频预览质量之间,维持平衡。 |
CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE | 优先保证设备性能。SDK 根据用户在 setVideoEncoderConfiguration 中设置编码器的分辨率和帧率,选择最接近的摄像头输出参数,从而保证设备性能。在这种情况下,预览质量接近于编码器的输出质量。 |
CAPTURER_OUTPUT_PREFERENCE_PREVIEW | 优先保证视频预览质量。SDK选择较高的摄像头输出参数,从而提高预览视频的质量。在这种情况下,会消耗更多的 CPU 及内存做视频前处理。 |
网络连接状态。
枚举值 | |
---|---|
CONNECTION_STATE_DISCONNECTED | 1: 网络连接断开。 该状态表示 SDK 处于:
|
CONNECTION_STATE_CONNECTING | 2: 建立网络连接中。 该状态表示 SDK 在调用 joinChannel 后正在与指定的频道建立连接。
|
CONNECTION_STATE_CONNECTED | 3: 网络已连接。 该状态表示用户已经加入频道,可以在频道内发布或订阅媒体流。 如果因网络断开或切换而导致 SDK 与频道的连接中断,SDK 会自动重连,此时应用程序会收到:
|
CONNECTION_STATE_RECONNECTING | 4: 重新建立网络连接中。 该状态表示 SDK 之前曾加入过频道,但因网络等原因连接中断了,此时 SDK 会自动尝试重新接入频道。
|
CONNECTION_STATE_FAILED | 5: 网络连接失败。 该状态表示 SDK 已不再尝试重新加入频道,用户必须要调用 leaveChannel 离开频道。
|
引起网络连接状态发生改变的原因。
枚举值 | |
---|---|
CONNECTION_CHANGED_CONNECTING | 0: 建立网络连接中。 |
CONNECTION_CHANGED_JOIN_SUCCESS | 1: 成功加入频道。 |
CONNECTION_CHANGED_INTERRUPTED | 2: 网络连接中断。 |
CONNECTION_CHANGED_BANNED_BY_SERVER | 3: 网络连接被服务器禁止。 |
CONNECTION_CHANGED_JOIN_FAILED | 4: 加入频道失败。SDK 在尝试加入频道 20 分钟后还是没能加入频道,会返回该状态,并停止尝试重连。 |
CONNECTION_CHANGED_LEAVE_CHANNEL | 5: 离开频道。 |
CONNECTION_CHANGED_INVALID_APP_ID | 6: 不是有效的 APP ID。请更换有效的 APP ID 重新加入频道。 |
CONNECTION_CHANGED_INVALID_CHANNEL_NAME | 7: 不是有效的频道名。请更换有效的频道名重新加入频道。 |
CONNECTION_CHANGED_INVALID_TOKEN | 8: 生成的 Token 无效。一般有以下原因:
|
CONNECTION_CHANGED_TOKEN_EXPIRED | 9: 当前使用的 Token 过期,不再有效,需要重新在你的服务端申请生成 Token。 |
CONNECTION_CHANGED_REJECTED_BY_SERVER | 10: 此用户被服务器禁止。 |
CONNECTION_CHANGED_SETTING_PROXY_SERVER | 11: 由于设置了代理服务器,SDK 尝试重连。 |
CONNECTION_CHANGED_RENEW_TOKEN | 12: 更新 Token 引起网络连接状态改变。 |
CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED | 13: 客户端 IP 地址变更,可能是由于网络类型,或网络运营商的 IP 或端口发生改变引起。 |
CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT | 14: SDK 和服务器连接保活超时,进入自动重连状态 CONNECTION_STATE_RECONNECTING(4)。 |
语音路由
音频会话控制权限
Agora SDK 对 Audio Session 的控制权限
跨频道媒体流转发出错的错误码。
枚举值 | |
---|---|
RELAY_OK | 0: 一切正常。 |
RELAY_ERROR_SERVER_ERROR_RESPONSE | 1: 服务器回应出错。 |
RELAY_ERROR_SERVER_NO_RESPONSE | 2: 服务器无回应。你可以调用 leaveChannel 方法离开频道。 |
RELAY_ERROR_NO_RESOURCE_AVAILABLE | 3: SDK 无法获取服务,可能是因为服务器资源有限导致。 |
RELAY_ERROR_FAILED_JOIN_SRC | 4: 发起跨频道转发媒体流请求失败。 |
RELAY_ERROR_FAILED_JOIN_DEST | 5: 接受跨频道转发媒体流请求失败。 |
RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC | 6: 服务器接收跨频道转发媒体流失败。 |
RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST | 7: 服务器发送跨频道转发媒体流失败。 |
RELAY_ERROR_SERVER_CONNECTION_LOST | 8: SDK 因网络质量不佳与服务器断开。你可以调用 leaveChannel 方法离开当前频道。 |
RELAY_ERROR_INTERNAL_ERROR | 9: 服务器内部出错。 |
RELAY_ERROR_SRC_TOKEN_EXPIRED | 10: 源频道的 Token 已过期。 |
RELAY_ERROR_DEST_TOKEN_EXPIRED | 11: 目标频道的 Token 已过期。 |
跨频道媒体流转发事件码。
const int agora::rtc::STANDARD_BITRATE = 0 |
setVideoEncoderConfiguration 的标准码率。
(推荐)标准码率模式。该模式下,视频在通信和直播场景下的码率有所不同:通信场景下,码率与基准码率一致;直播场景下,码率对照基准码率翻倍。
const int agora::rtc::COMPATIBLE_BITRATE = -1 |
setVideoEncoderConfiguration 的兼容码率。
适配码率模式。该模式下,视频在通信和直播场景下的码率均与基准码率一致。直播下如果选择该模式,视频帧率可能会低于设置的值。
const int agora::rtc::DEFAULT_MIN_BITRATE = -1 |
使用系统默认最低编码码率。