类型定义 | |
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::LiveStreamAdvancedFeature | LiveStreamAdvancedFeature |
typedef struct agora::rtc::LiveTranscoding | LiveTranscoding |
typedef struct agora::rtc::Rect | Rect |
typedef struct agora::rtc::WatermarkOptions | WatermarkOptions |
typedef int | ContentInspectType |
变量 | |
const int | STANDARD_BITRATE = 0 |
const int | COMPATIBLE_BITRATE = -1 |
const int | DEFAULT_MIN_BITRATE = -1 |
const ContentInspectType | kContentInspectInvalid = 0 |
const ContentInspectType | kContentInspectModeration = 1 |
const ContentInspectType | kContentInspectSupervise = 2 |
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 |
待添加的水印图片的设置选项。
typedef int agora::rtc::ContentInspectType |
截图上传模块的类型:
0
: (默认)该功能模块无实际功能。请不要将 type
设为该值。1
: 预留参数。2
: 截图。SDK 会对视频流进行截图并上传。音乐文件播放状态。 在 onAudioMixingStateChanged 回调中报告。
枚举值 | |
---|---|
AUDIO_MIXING_STATE_PLAYING | 710: 音乐文件正常播放。 该状态可能由以下原因导致: |
AUDIO_MIXING_STATE_PAUSED | 711: 音乐文件暂停播放。 该状态由 AUDIO_MIXING_REASON_PAUSED_BY_USER (725) 原因导致。 |
AUDIO_MIXING_STATE_STOPPED | 713: 音乐文件停止播放。 该状态可能由以下原因导致: |
AUDIO_MIXING_STATE_FAILED | 714: 音乐文件播放失败。 该状态可能由以下原因导致: |
混音音乐文件错误码。
枚举值 | |
---|---|
AUDIO_MIXING_ERROR_CAN_NOT_OPEN | 701: 音乐文件打开出错。 |
AUDIO_MIXING_ERROR_TOO_FREQUENT_CALL | 702: 音乐文件打开太频繁。 |
AUDIO_MIXING_ERROR_INTERRUPTED_EOF | 703: 音乐文件播放中断。 |
AUDIO_MIXING_ERROR_OK | 0: 音乐文件状态正常。 |
音乐文件播放状态改变的原因。在 onAudioMixingStateChanged 回调中报告。
枚举值 | |
---|---|
AUDIO_MIXING_REASON_CAN_NOT_OPEN | 701: 音乐文件打开出错。例如,本地音乐文件不存在、文件格式不支持或无法访问在线音乐文件 URL。 |
AUDIO_MIXING_REASON_TOO_FREQUENT_CALL | 702: 音乐文件打开太频繁。如需多次调用 startAudioMixing,请确保调用间隔大于 500 ms。 |
AUDIO_MIXING_REASON_INTERRUPTED_EOF | 703: 音乐文件播放中断。 |
AUDIO_MIXING_REASON_STARTED_BY_USER | 720: 成功调用 startAudioMixing 播放音乐文件。 |
AUDIO_MIXING_REASON_ONE_LOOP_COMPLETED | 721: 音乐文件完成一次循环播放。 |
AUDIO_MIXING_REASON_START_NEW_LOOP | 722: 音乐文件开始新的一次循环播放。 |
AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED | 723: 音乐文件完成所有循环播放。 |
AUDIO_MIXING_REASON_STOPPED_BY_USER | 724: 成功调用 stopAudioMixing 停止播放音乐文件。 |
AUDIO_MIXING_REASON_PAUSED_BY_USER | 725: 成功调用 pauseAudioMixing 暂停播放音乐文件。 |
AUDIO_MIXING_REASON_RESUMED_BY_USER | 726: 成功调用 resumeAudioMixing 恢复播放音乐文件。 |
本地视频状态
枚举值 | |
---|---|
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_CAPTURE_INBACKGROUND | 6:(仅适用于 iOS)应用处于后台。请提示用户应用处于后台时,无法正常进行视频采集。
|
LOCAL_VIDEO_STREAM_ERROR_CAPTURE_MULTIPLE_FOREGROUND_APPS | 7:(仅支持 iOS)当前应用窗口处于侧拉、分屏、画中画模式,且其他应用正占用摄像头时,SDK 会报告该错误码。 请提示用户应用窗口处于侧拉、分屏、画中画模式,且其他应用正占用摄像头时,无法正常进行视频采集。
|
LOCAL_VIDEO_STREAM_ERROR_DEVICE_NOT_FOUND | 8: 找不到本地视频采集设备。请检查摄像头是否与设备连接正常,检查摄像头是否正常工作,或者尝试重新加入频道。
|
LOCAL_VIDEO_STREAM_ERROR_DEVICE_DISCONNECTED | 9:(仅支持 macOS)当前正在使用的外部摄像头已经断开连接(例如,被拔出)。
|
LOCAL_VIDEO_STREAM_ERROR_DEVICE_INVALID_ID | 10: (仅 macOS 和 Windows)SDK 无法在视频设备列表中找到该视频设备。请检查视频设备 ID 是否有效。
|
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_MINIMIZED | 11: 调用 startScreenCaptureByWindowId 方法共享窗口时,共享窗口处于最小化的状态。SDK 无法共享被最小化的窗口。请在应用层对此类窗口取消最小化,例如,将窗口最大化。
|
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_CLOSED | 12:(仅 macOS,Windows)该错误码表示通过窗口 ID 共享的窗口已关闭,或通过窗口 ID 共享的全屏窗口已退出全屏。 退出全屏模式后,远端用户将无法看到共享的窗口。为避免远端用户看到黑屏,声网建议你立即结束本次共享。 报告该错误码的常见场景:
|
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_OCCLUDED | 13:(仅 Windows)待共享的窗口被其他窗口遮挡住,被遮挡住的部分在共享时会被 SDK 涂黑。
|
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_NOT_SUPPORTED |
20:(仅 Windows)SDK 不支持共享该类型的窗口。请提示用户当前类型的窗口不支持共享,请使用屏幕共享而非窗口共享。
|
本地音频出错原因
录音音质。在 startAudioRecording 中设置。
网络质量。
设置视频显示模式。
枚举值 | |
---|---|
RENDER_MODE_HIDDEN | 1: 视频尺寸等比缩放。优先保证视窗被填满。因视频尺寸与显示视窗尺寸不一致而多出的视频将被截掉。 |
RENDER_MODE_FIT | 2: 视频尺寸等比缩放。优先保证视频内容全部显示。因视频尺寸与显示视窗尺寸不一致造成的视窗未被填满的区域填充黑色。 |
RENDER_MODE_ADAPTIVE |
|
RENDER_MODE_FILL | 4: 视频尺寸进行缩放和拉伸以充满显示视窗。 |
enum agora::rtc::SR_MODE |
枚举值 | |
---|---|
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: 游戏语音场景。该场景默认使用低功耗低码率的编解码器,且频道内任何用户都可以自由发言,适用于游戏场景。
|
超级分辨率算法未成功开启的原因
虚拟背景开启出错的原因或开启成功的提示。
枚举值 | |
---|---|
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_SUCCESS | 0: 虚拟背景已成功开启。 |
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_IMAGE_NOT_EXIST | 1: 自定义的背景图不存在。请检查 VirtualBackgroundSource 中 |
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_COLOR_FORMAT_NOT_SUPPORTED | 2: 自定义的背景图颜色格式出错。请检查 VirtualBackgroundSource 中 |
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_DEVICE_NOT_SUPPORTED | 3: 设备不支持使用虚拟背景。 |
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_INSUFFICIENT_PERFORMANCE | 4: 开启或运行虚拟背景功能时,SDK 检测到用户设备性能不足。收到该原因码后,声网建议用户关闭虚拟背景功能。
|
用户离线原因。
推流状态
枚举值 | |
---|---|
RTMP_STREAM_PUBLISH_STATE_IDLE | 0: 推流未开始或已结束。成功调用 removePublishStreamUrl 方法删除推流地址后,也会返回该状态。 |
RTMP_STREAM_PUBLISH_STATE_CONNECTING | 1: 正在连接声网推流服务器和 CDN 服务器。调用 addPublishStreamUrl 方法后,会返回该状态。 |
RTMP_STREAM_PUBLISH_STATE_RUNNING | 2: 推流正在进行。成功推流后,会返回该状态。 |
RTMP_STREAM_PUBLISH_STATE_RECOVERING | 3: 正在恢复推流。当 CDN 出现异常,或推流短暂中断时,SDK 会自动尝试恢复推流,并返回该状态。
|
RTMP_STREAM_PUBLISH_STATE_FAILURE | 4: 推流失败。失败后,你可以通过返回的错误码排查错误原因,也可以再次调用 addPublishStreamUrl 重新尝试推流。 |
RTMP_STREAM_PUBLISH_STATE_DISCONNECTING | 5: SDK 正在与声网推流服务器和 CDN 服务器断开连接。 当你调用
|
推流错误信息
枚举值 | |
---|---|
RTMP_STREAM_PUBLISH_ERROR_OK | 0: 推流成功 |
RTMP_STREAM_PUBLISH_ERROR_INVALID_ARGUMENT | 1: 参数无效。请检查输入参数是否正确。例如如果你在调用 addPublishStreamUrl 前没有调用 setLiveTranscoding 设置转码参数,SDK 会返回该错误。 |
RTMP_STREAM_PUBLISH_ERROR_ENCRYPTED_STREAM_NOT_ALLOWED | 2: 推流已加密,不能推流。 |
RTMP_STREAM_PUBLISH_ERROR_CONNECTION_TIMEOUT | 3: 推流超时未成功。可调用 addPublishStreamUrl 重新推流。 |
RTMP_STREAM_PUBLISH_ERROR_INTERNAL_SERVER_ERROR | 4: 推流服务器出现错误。请调用 addPublishStreamUrl 重新推流。 |
RTMP_STREAM_PUBLISH_ERROR_RTMP_SERVER_ERROR | 5: CDN 服务器出现错误。 |
RTMP_STREAM_PUBLISH_ERROR_TOO_OFTEN | 6: 预留参数。 |
RTMP_STREAM_PUBLISH_ERROR_REACH_LIMIT | 7: 单个主播的推流地址数目达到上限 10。请删掉一些不用的推流地址再增加推流地址。 |
RTMP_STREAM_PUBLISH_ERROR_NOT_AUTHORIZED | 8: 主播操作不属于自己的流。例如更新其他主播的流参数、停止其他主播的流。请检查 App 逻辑。 |
RTMP_STREAM_PUBLISH_ERROR_STREAM_NOT_FOUND | 9: 服务器未找到这个流。 |
RTMP_STREAM_PUBLISH_ERROR_FORMAT_NOT_SUPPORTED | 10: 推流地址格式有错误。请检查推流地址格式是否正确。 |
RTMP_STREAM_PUBLISH_ERROR_NOT_BROADCASTER | 11: 用户角色不是主播,该用户无法使用推流功能。请检查你的应用代码逻辑。
|
RTMP_STREAM_PUBLISH_ERROR_TRANSCODING_NO_MIX_STREAM | 13: 非转码推流情况下,调用了
|
RTMP_STREAM_PUBLISH_ERROR_NET_DOWN | 14: 主播的网络出错。
|
RTMP_STREAM_PUBLISH_ERROR_INVALID_APPID | 15: 你的 App ID 没有使用声网推流服务的权限。请参考前提条件开启推流服务。
|
RTMP_STREAM_UNPUBLISH_ERROR_OK | 100: 推流已正常结束。当你调用 removePublishStreamUrl 结束推流后,SDK 会返回该值。
|
RTMP/RTMPS 推流时发生的事件。
onRecordAudioFrame 或 onPlaybackAudioFrame 回调中返回的音频数据的使用模式
枚举值 | |
---|---|
RAW_AUDIO_FRAME_OP_MODE_READ_ONLY | 0: 只读模式,用户仅从 AudioFrame 获取原始数据,不作任何修改。例如: 若用户通过 SDK 采集数据,自己进行 RTMP/RTMPS 推流,则可以选择该模式。 |
RAW_AUDIO_FRAME_OP_MODE_WRITE_ONLY | 1: 只写模式,用户替换 AudioFrame 中的数据以供 SDK 编码传输。例如: 若用户自行采集数据,可选择该模式。 |
RAW_AUDIO_FRAME_OP_MODE_READ_WRITE | 2: 读写模式, 用户从 AudioFrame 获取并修改数据,并返回给 SDK 进行编码传输。例如: 若用户自己有音效处理模块,且想要根据实际需要对数据进行前处理(例如变声),则可以选择该模式。 |
语音音效均衡波段的中心频率。
各混响音效 Key 所对应的值。
预设的语音变声效果。
设置语聊美声效果时,声网推荐使用 GENERAL_BEAUTY_VOICE_MALE_MAGNETIC 处理男声, 使用 GENERAL_BEAUTY_VOICE_FEMALE_FRESH 或 GENERAL_BEAUTY_VOICE_FEMALE_VITALITY 处理女声, 否则音频可能会产生失真。
预设的语音混响效果
预设的美声效果选项。
枚举值 | |
---|---|
VOICE_BEAUTIFIER_OFF | 原声,即关闭美声效果。 |
CHAT_BEAUTIFIER_MAGNETIC | 磁性(男)。
|
CHAT_BEAUTIFIER_FRESH | 清新(女)。
|
CHAT_BEAUTIFIER_VITALITY | 活力(女)。
|
SINGING_BEAUTIFIER |
歌唱美声。
|
TIMBRE_TRANSFORMATION_VIGOROUS | 浑厚。 |
TIMBRE_TRANSFORMATION_DEEP | 低沉。 |
TIMBRE_TRANSFORMATION_MELLOW | 圆润。 |
TIMBRE_TRANSFORMATION_FALSETTO | 假音。 |
TIMBRE_TRANSFORMATION_FULL | 饱满。 |
TIMBRE_TRANSFORMATION_CLEAR | 清澈。 |
TIMBRE_TRANSFORMATION_RESOUNDING | 高亢。 |
TIMBRE_TRANSFORMATION_RINGING | 嘹亮。 |
预设的音效选项。
枚举值 | |
---|---|
AUDIO_EFFECT_OFF | 原声,即关闭人声音效。 |
ROOM_ACOUSTICS_KTV | KTV。
|
ROOM_ACOUSTICS_VOCAL_CONCERT | 演唱会。
|
ROOM_ACOUSTICS_STUDIO | 录音棚。
|
ROOM_ACOUSTICS_PHONOGRAPH | 留声机。
|
ROOM_ACOUSTICS_VIRTUAL_STEREO | 虚拟立体声,即 SDK 将单声道的音频渲染出双声道的音效。
|
ROOM_ACOUSTICS_SPACIAL | 空旷。
|
ROOM_ACOUSTICS_ETHEREAL | 空灵。
|
ROOM_ACOUSTICS_3D_VOICE | 3D 人声,即 SDK 将音频渲染出在用户周围环绕的效果,环绕周期为 10 秒。设置该音效后,你还可以 调用 setAudioEffectParameters 修改环绕周期。
|
VOICE_CHANGER_EFFECT_UNCLE | 大叔。
|
VOICE_CHANGER_EFFECT_OLDMAN | 老年男性。
|
VOICE_CHANGER_EFFECT_BOY | 男孩。
|
VOICE_CHANGER_EFFECT_SISTER | 少女。
|
VOICE_CHANGER_EFFECT_GIRL | 女孩。
|
VOICE_CHANGER_EFFECT_PIGKING | 猪八戒。
|
VOICE_CHANGER_EFFECT_HULK | 绿巨人。
|
STYLE_TRANSFORMATION_RNB | R&B。
|
STYLE_TRANSFORMATION_POPULAR | 流行。
|
PITCH_CORRECTION | 电音,即 SDK 以主音音高为 C 的自然大调为基础修正音频的实际音高。设置该音效后,你还可以 调用 setAudioEffectParameters 调整修音的基础调式和主音音高。
|
远端音频流状态
枚举值 | |
---|---|
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: 收到了远端流,订阅成功。 |
远端视频流状态切换原因。
视频编码的方向模式。
带宽受限时的视频编码降级偏好
枚举值 | |
---|---|
MAINTAIN_QUALITY | 0:(默认)带宽受限时,视频编码时优先降低视频帧率,维持视频质量不变。该降级偏好适用于画质优先的场景。
|
MAINTAIN_FRAMERATE | 1: 带宽受限时,视频编码时优先降低视频质量,维持视频帧率不变。该降级偏好适用于流畅性优先且允许画质降低的场景。 |
MAINTAIN_BALANCED |
2: 带宽受限时,视频编码时同时降低视频帧率和视频质量。
|
音视频流回退处理选项。
枚举值 | |
---|---|
STREAM_FALLBACK_OPTION_DISABLED | 0: 上行/下行网络较弱时,不对音视频流作回退处理,但不能保证音视频流的质量。 |
STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW | 1: 在下行网络条件较差时只接收视频小流(低分辨率、低码率视频流)。该选项只对 setRemoteSubscribeFallbackOption 有效,对 setLocalPublishFallbackOption 方法无效。 |
STREAM_FALLBACK_OPTION_AUDIO_ONLY | 2: 上行/下行网络较弱时,先尝试只接收视频小流(低分辨率、低码率视频流);如果网络环境无法显示视频,则再回退到只接收远端订阅的音频流。 |
摄像头采集偏好。
枚举值 | |
---|---|
CAPTURER_OUTPUT_PREFERENCE_AUTO | 0:(默认)自动调整采集参数。SDK 根据实际的采集设备性能及网络情况,选择合适的摄像头输出参数,在设备性能及视频预览质量之间,维持平衡。 |
CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE | 1: 优先保证设备性能。SDK 根据用户在 setVideoEncoderConfiguration 中设置编码器的分辨率和帧率,选择最接近的摄像头输出参数,从而保证设备性能。在这种情况下,预览质量接近于编码器的输出质量。 |
CAPTURER_OUTPUT_PREFERENCE_PREVIEW | 2: 优先保证视频预览质量。SDK选择较高的摄像头输出参数,从而提高预览视频的质量。在这种情况下,会消耗更多的 CPU 及内存做视频前处理。 |
CAPTURER_OUTPUT_PREFERENCE_MANUAL | 3: 允许用户设置本地摄像头采集的视频宽高。
|
网络连接状态。
枚举值 | |
---|---|
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: 网络连接被服务器禁止。可能是由于服务端调用封禁用户权限 API 将用户踢出频道。请在应用中弹框提示“用户被踢出频道”。 |
CONNECTION_CHANGED_JOIN_FAILED | 4: 加入频道失败。当 SDK 收到 onConnectionStateChanged(CONNECTION_STATE_RECONNECTING, CONNECTION_CHANGED_INTERRUPTED) 后连续 20 分钟无法重新加入频道时,会报告该状态并停止重连。 请在应用中弹框显示“因网络问题无法加入频道。请尝试切换网络并重新加入频道。” |
CONNECTION_CHANGED_LEAVE_CHANNEL | 5: 离开频道。 |
CONNECTION_CHANGED_INVALID_APP_ID | 6: 不是有效的 APP ID。请更换有效的 APP ID 重新加入频道。请检查用户使用的 App ID 是否与从声网控制台获取的项目的 App ID 一致,并更换有效的 APP ID 重新加入频道。 |
CONNECTION_CHANGED_INVALID_CHANNEL_NAME | 7: 不是有效的频道名。频道名不能为空,且字符长度不能超过 64 字节,支持的字符集详见 joinChannel 的 |
CONNECTION_CHANGED_INVALID_TOKEN | 8: Token 无效。一般有以下原因:
请检查用户使用的 Token 是否与业务服务器上生成的 Token 一致,并更换有效的 Token 重新加入频道。 |
CONNECTION_CHANGED_TOKEN_EXPIRED | 9: 当前使用的 Token 过期,用户被迫退出频道。客户端需要重新向自己的业务服务器申请 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 地址变更,SDK 尝试重连。如果多次出现该状态,请在应用中弹框提示“您的网络连接不稳定,建议切换网络。” |
CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT | 14: SDK 和服务器连接保活超时,进入自动重连状态 CONNECTION_STATE_RECONNECTING(4)。 |
CONNECTION_CHANGED_SAME_UID_LOGIN | 19: 使用相同的 UID 从不同的设备加入同一频道。
|
CONNECTION_CHANGED_TOO_MANY_BROADCASTERS | 20: 频道内主播人数已达上限。
|
网络连接类型
当前的音频路由。在 onAudioRouteChanged 回调中报告。
SDK 与本地代理的连接模式。
代理类型。
枚举值 | |
---|---|
NONE_PROXY_TYPE | 0: 调用 setLocalAccessPoint 并加入了频道,但未连接本地代理。
|
UDP_PROXY_TYPE | 1: UDP 协议的云代理,即 Force UDP 云代理模式。在该模式下,SDK 始终通过 UDP 协议传输数据。 |
TCP_PROXY_TYPE | 2: TCP(加密)协议的云代理,即 Force TCP 云代理模式。在该模式下,SDK 始终通过 TLS 443 传输数据。 |
LOCAL_PROXY_TYPE | 3: 调用 setLocalAccessPoint 方法并连接到本地代理。
|
TCP_PROXY_AUTO_FALLBACK_TYPE | 4: 自动模式。在该模式下,SDK 优先连接 SD-RTN™,如果连接失败,自动切换为 TLS 443。 |
SDK 对 Audio Session 的操作权限。
录音内容。在 startAudioRecording 中设置。
枚举值 | |
---|---|
AUDIO_RECORDING_POSITION_MIXED_RECORDING_AND_PLAYBACK | 0:(默认)录制本地和所有远端用户混音后的音频。 |
AUDIO_RECORDING_POSITION_RECORDING | 1: 仅录制本地用户的音频。 |
AUDIO_RECORDING_POSITION_MIXED_PLAYBACK | 2: 仅录制所有远端用户的音频。 |
音频文件信息的获取状态。在 onRequestAudioFileInfo 中报告。
枚举值 | |
---|---|
AUDIO_FILE_INFO_ERROR_OK | 0: 获取成功。 |
AUDIO_FILE_INFO_ERROR_FAILURE | 1: 获取失败。 |
切换用户角色失败的原因。
改善 Wi-Fi 连接质量的操作建议。
跨频道媒体流转发出错的错误码。
枚举值 | |
---|---|
RELAY_OK | 0: 一切正常。 |
RELAY_ERROR_SERVER_ERROR_RESPONSE | 1: 服务器回应出错。 |
RELAY_ERROR_SERVER_NO_RESPONSE | 2: 服务器无回应。
|
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 已过期。 |
跨频道媒体流转发事件码。
枚举值 | |
---|---|
RELAY_EVENT_NETWORK_DISCONNECTED | 0: 网络中断导致用户与服务器连接断开。 |
RELAY_EVENT_NETWORK_CONNECTED | 1: 用户与服务器建立连接。 |
RELAY_EVENT_PACKET_JOINED_SRC_CHANNEL | 2: 用户已加入源频道。 |
RELAY_EVENT_PACKET_JOINED_DEST_CHANNEL | 3: 用户已加入目标频道。 |
RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL | 4: SDK 开始向目标频道发送数据包。 |
RELAY_EVENT_PACKET_RECEIVED_VIDEO_FROM_SRC | 5: 服务器收到了频道发送的视频流。 |
RELAY_EVENT_PACKET_RECEIVED_AUDIO_FROM_SRC | 6: 服务器收到了频道发送的音频流。 |
RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL | 7: 目标频道已更新。成功调用 updateChannelMediaRelay 方法会返回该状态码,表示成功将流转发到目标频道,或成功退出当前的转发频道。 |
RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_REFUSED | 8: 内部原因导致目标频道更新失败。 |
RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE | 9: 目标频道未发生改变,即目标频道更新失败。 |
RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_IS_NULL | 10: 目标频道名为 NULL。 |
RELAY_EVENT_VIDEO_PROFILE_UPDATE | 11: 视频属性已发送至服务器。 |
RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS | 12: 成功暂停向目标频道转发媒体流。 |
RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED | 13: 暂停向目标频道转发媒体流失败。 |
RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS | 14: 成功恢复向目标频道转发媒体流。 |
RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED | 15: 恢复向目标频道转发媒体流失败。 |
跨频道媒体流转发状态码。
枚举值 | |
---|---|
RELAY_STATE_IDLE | 0: 初始状态。在成功调用 stopChannelMediaRelay 停止 跨频道媒体流转发后, onChannelMediaRelayStateChanged 会回调该状态。 |
RELAY_STATE_CONNECTING | 1: SDK 尝试跨频道。 |
RELAY_STATE_RUNNING | 2: 源频道主播成功加入目标频道。 |
RELAY_STATE_FAILURE | 3: 发生异常,详见 |
屏幕共享的场景
内置加密模式。声网推荐使用 AES_128_GCM2
或 AES_256_GCM2
加密模式。 这两种模式支持使用盐,安全性更高。
当前的录制状态。
枚举值 | |
---|---|
RECORDER_STATE_ERROR | -1: 音视频流录制出错,错误原因详见 RecorderErrorCode 中的提示。 |
RECORDER_STATE_START | 2: 音视频流录制开始。 |
RECORDER_STATE_STOP | 3: 音视频流录制停止。 |
录制状态出错的原因。
枚举值 | |
---|---|
RECORDER_ERROR_NONE | 0: 一切正常。 |
RECORDER_ERROR_WRITE_FAILED | 1: 录制文件写入失败。 |
RECORDER_ERROR_NO_STREAM | 2: 没有可录制的音视频流或者录制的音视频流中断超过 5 秒。 |
RECORDER_ERROR_OVER_MAX_DURATION | 3: 录制时长超出上限。 |
RECORDER_ERROR_CONFIG_CHANGED | 4: 录制配置( |
RECORDER_ERROR_CUSTOM_STREAM_DETECTED | 5: 在通信场景下,捕捉到 3.0.0 之前版本的用户发送的音视频流。 |
const int agora::rtc::STANDARD_BITRATE = 0 |
setVideoEncoderConfiguration 的标准码率。
(推荐)标准码率模式。该模式下,视频在通信和直播场景下的码率有所不同:通信场景下,码率与基准码率一致;直播场景下,码率对照基准码率翻倍。
const int agora::rtc::COMPATIBLE_BITRATE = -1 |
setVideoEncoderConfiguration 的兼容码率。
适配码率模式。该模式下,视频在通信和直播场景下的码率均与基准码率一致。直播下如果选择该模式,视频帧率可能会低于设置的值。
const int agora::rtc::DEFAULT_MIN_BITRATE = -1 |
使用系统默认最低编码码率。
const ContentInspectType agora::rtc::kContentInspectInvalid = 0 |
0:(默认)该功能模块无实际功能。请不要将 type
设为该值。
const ContentInspectType agora::rtc::kContentInspectModeration = 1 |
1: 预留参数。
const ContentInspectType agora::rtc::kContentInspectSupervise = 2 |
2: 截图。SDK 会对视频流进行截图并上传。