class  AudioAacFrame
 
struct  AudioFrame
 
class  AudioPcmFrame
 
struct  AudioVolumeInfo
 
class  IEngine
 
class  IEngineConfig
 
struct  UserJoinInfos
 
struct  VideoFrame
 
struct  VideoH264Frame
 
struct  VideoJpgFrame
 
struct  VideoMixingLayout
 
class  VideoYuvFrame
 

类型定义

typedef unsigned char uchar_t
 
typedef unsigned int uint_t
 
typedef unsigned int uid_t
 
typedef uint64_t u64_t
 
typedef struct agora::linuxsdk::VideoMixingLayout VideoMixingLayout
 
typedef struct agora::linuxsdk::UserJoinInfos UserJoinInfos
 

枚举

enum  ERROR_CODE_TYPE { ERR_OK = 0, ERR_FAILED = 1, ERR_INVALID_ARGUMENT = 2, ERR_INTERNAL_FAILED = 3 }
 
enum  STAT_CODE_TYPE {
  STAT_OK = 0, STAT_ERR_FROM_ENGINE = 1, STAT_ERR_ARS_JOIN_CHANNEL = 2, STAT_ERR_CREATE_PROCESS = 3,
  STAT_ERR_MIXED_INVALID_VIDEO_PARAM = 4, STAT_ERR_NULL_POINTER = 5, STAT_ERR_PROXY_SERVER_INVALID_PARAM = 6, STAT_POLL_ERR = 0x8,
  STAT_POLL_HANG_UP = 0x10, STAT_POLL_NVAL = 0x20
}
 
enum  LEAVE_PATH_CODE {
  LEAVE_CODE_INIT = 0, LEAVE_CODE_SIG = 1<<1, LEAVE_CODE_NO_USERS = 1<<2, LEAVE_CODE_TIMER_CATCH = 1<<3,
  LEAVE_CODE_CLIENT_LEAVE = 1 << 4
}
 
enum  WARN_CODE_TYPE {
  WARN_NO_AVAILABLE_CHANNEL = 103, WARN_LOOKUP_CHANNEL_TIMEOUT = 104, WARN_LOOKUP_CHANNEL_REJECTED = 105, WARN_OPEN_CHANNEL_TIMEOUT = 106,
  WARN_OPEN_CHANNEL_REJECTED = 107, WARN_RECOVERY_CORE_SERVICE_FAILURE = 108
}
 
enum  CHANNEL_PROFILE_TYPE { CHANNEL_PROFILE_COMMUNICATION = 0, CHANNEL_PROFILE_LIVE_BROADCASTING = 1 }
 
enum  USER_OFFLINE_REASON_TYPE { USER_OFFLINE_QUIT = 0, USER_OFFLINE_DROPPED = 1, USER_OFFLINE_BECOME_AUDIENCE = 2 }
 
enum  REMOTE_VIDEO_STREAM_TYPE { REMOTE_VIDEO_STREAM_HIGH = 0, REMOTE_VIDEO_STREAM_LOW = 1 }
 
enum  VIDEO_FORMAT_TYPE {
  VIDEO_FORMAT_DEFAULT_TYPE = 0, VIDEO_FORMAT_H264_FRAME_TYPE = 1, VIDEO_FORMAT_YUV_FRAME_TYPE = 2, VIDEO_FORMAT_JPG_FRAME_TYPE = 3,
  VIDEO_FORMAT_JPG_FILE_TYPE = 4, VIDEO_FORMAT_JPG_VIDEO_FILE_TYPE = 5
}
 
enum  AUDIO_FORMAT_TYPE { AUDIO_FORMAT_DEFAULT_TYPE = 0, AUDIO_FORMAT_AAC_FRAME_TYPE = 1, AUDIO_FORMAT_PCM_FRAME_TYPE = 2, AUDIO_FORMAT_MIXED_PCM_FRAME_TYPE = 3 }
 
enum  AUDIO_FRAME_TYPE { AUDIO_FRAME_RAW_PCM = 0, AUDIO_FRAME_AAC = 1 }
 
enum  MEMORY_TYPE { STACK_MEM_TYPE = 0, HEAP_MEM_TYPE = 1 }
 
enum  VIDEO_FRAME_TYPE { VIDEO_FRAME_RAW_YUV = 0, VIDEO_FRAME_H264 = 1, VIDEO_FRAME_JPG = 2 }
 
enum  TRIGGER_MODE_TYPE { AUTOMATICALLY_MODE = 0, MANUALLY_MODE = 1 }
 
enum  LANGUAGE_TYPE { CPP_LANG = 0, JAVA_LANG = 1 }
 
enum  AUDIO_PROFILE_TYPE { AUDIO_PROFILE_DEFAULT = 0, AUDIO_PROFILE_HIGH_QUALITY = 1, AUDIO_PROFILE_HIGH_QUALITY_STEREO = 2 }
 
enum  agora_log_level {
  AGORA_LOG_LEVEL_FATAL = 1, AGORA_LOG_LEVEL_ERROR = 2, AGORA_LOG_LEVEL_WARN = 3, AGORA_LOG_LEVEL_NOTICE = 4,
  AGORA_LOG_LEVEL_INFO = 5, AGORA_LOG_LEVEL_DEBUG = 6
}
 
enum  MIXED_AV_CODEC_TYPE { MIXED_AV_DEFAULT = 0, MIXED_AV_CODEC_V1 = 1, MIXED_AV_CODEC_V2 = 2 }
 

类型定义说明

◆ uchar_t

typedef unsigned char agora::linuxsdk::uchar_t

◆ uint_t

typedef unsigned int agora::linuxsdk::uint_t

◆ uid_t

typedef unsigned int agora::linuxsdk::uid_t

◆ u64_t

typedef uint64_t agora::linuxsdk::u64_t

◆ VideoMixingLayout

视频合图布局的具体设置。

◆ UserJoinInfos

用户加入频道信息。

枚举类型说明

◆ ERROR_CODE_TYPE

错误代码。

注解
使用 Recording SDK 的过程中,也可能收到 Native SDK 的错误代码,请参考 Agora Native/Web SDK 错误代码
枚举值
ERR_OK 

0: 没有错误。

ERR_FAILED 

1: 一般性的错误(没有明确归类的错误原因)。

ERR_INVALID_ARGUMENT 

2: API 调用了无效的参数。例如指定的频道名含有非法字符。

ERR_INTERNAL_FAILED 

3: SDK 内部启动失败。

◆ STAT_CODE_TYPE

状态代码。

枚举值
STAT_OK 

0: 一切正常。

STAT_ERR_FROM_ENGINE 

1: Nativa SDK 产生的错误。详见Agora Native/Web SDK 错误代码

STAT_ERR_ARS_JOIN_CHANNEL 

2: 加入频道失败。

STAT_ERR_CREATE_PROCESS 

3: 创建进程失败。

STAT_ERR_MIXED_INVALID_VIDEO_PARAM 

4: 合流视频参数设置错误。请参考分辨率、帧率、码率对照表设置合流视频编码属性。

STAT_ERR_NULL_POINTER 

5: 无效的指针。

STAT_ERR_PROXY_SERVER_INVALID_PARAM 

6: 代理服务器参数无效。

STAT_POLL_ERR 

0x8: 轮询出错。

STAT_POLL_HANG_UP 

0x10: 轮询挂起。

STAT_POLL_NVAL 

0x20: 轮询请求无效。

◆ LEAVE_PATH_CODE

录制 App 离开频道的原因。

枚举值
LEAVE_CODE_INIT 

0: 初始化失败。

LEAVE_CODE_SIG 

1<<1: AgoraCoreService 收到 SIGINT 信号而触发的退出。

LEAVE_CODE_NO_USERS 

1<<2: 频道内除录制 App 外没有其他用户,录制 App 自动离开频道。

LEAVE_CODE_TIMER_CATCH 

1<<3: AgoraCoreService 收到 SIGTERM 信号而触发的退出。

LEAVE_CODE_CLIENT_LEAVE 

1<<4: 录制 App 调用 leaveChannel 方法退出频道。

◆ WARN_CODE_TYPE

警告代码。

注解
使用 Recording SDK 的过程中,也可能收到 Native SDK 的警告代码,请参考Agora Native/Web SDK 警告代码
枚举值
WARN_NO_AVAILABLE_CHANNEL 

103: 没有可用的频道资源。可能是因为服务端没法分配频道资源。

WARN_LOOKUP_CHANNEL_TIMEOUT 

104: 查找频道超时。在加入频道时 SDK 先要查找指定的频道,出现该警告一般是因为网络太差,连接不到服务器。

WARN_LOOKUP_CHANNEL_REJECTED 

105: 查找频道请求被服务器拒绝。服务器可能没有办法处理这个请求或请求是非法的。

WARN_OPEN_CHANNEL_TIMEOUT 

106: 打开频道超时。查找到指定频道后,SDK 接着打开该频道,超时一般是因为网络太差,连接不到服务器。

WARN_OPEN_CHANNEL_REJECTED 

107: 打开频道请求被服务器拒绝。服务器可能没有办法处理该请求或该请求是非法的。

WARN_RECOVERY_CORE_SERVICE_FAILURE 

108: 录制程序出现了异常错误(例如崩溃),录制 SDK 会重新恢复录制。

◆ CHANNEL_PROFILE_TYPE

频道模式。

注解
录制的频道模式必须和 Native SDK 或 Web SDK 设置的频道模式保持一致,否则可能导致问题。
枚举值
CHANNEL_PROFILE_COMMUNICATION 

0: 通信(默认),即常见的 1 对 1 单聊或群聊,频道内任何用户可以自由说话。

CHANNEL_PROFILE_LIVE_BROADCASTING 

1: 直播,有两种用户角色: 主播和观众。

◆ USER_OFFLINE_REASON_TYPE

用户离开当前频道或掉线的原因。

枚举值
USER_OFFLINE_QUIT 

0: 用户主动离开。

USER_OFFLINE_DROPPED 

1: 因过长时间收不到对方数据包,超时掉线。注意: 可能有误判。

USER_OFFLINE_BECOME_AUDIENCE 

2: 用户身份从主播切换为观众时触发。该选项仅适用于当你在调用 joinChannel 时将频道模式设置为直播的场景。

◆ REMOTE_VIDEO_STREAM_TYPE

选择视频流类型。仅在 Agora Native SDK 或 Web SDK 开启双流模式时有效。

枚举值
REMOTE_VIDEO_STREAM_HIGH 

0: (默认)大流。

REMOTE_VIDEO_STREAM_LOW 

1: 小流。

◆ VIDEO_FORMAT_TYPE

视频解码格式。

枚举值
VIDEO_FORMAT_DEFAULT_TYPE 

0: 默认视频格式。

VIDEO_FORMAT_H264_FRAME_TYPE 

1: 原始视频数据 H.264 帧格式。

VIDEO_FORMAT_YUV_FRAME_TYPE 

2: 原始视频数据 YUV 帧格式。

VIDEO_FORMAT_JPG_FRAME_TYPE 

3: 原始视频数据 JPG 帧格式。

VIDEO_FORMAT_JPG_FILE_TYPE 

4: JPG 文件格式。

VIDEO_FORMAT_JPG_VIDEO_FILE_TYPE 

5: JPG 文件格式 + MP4 视频文件格式。

  • 单流模式(isMixingEnabled 为 false)下,录制得到多个 MP4 视频文件,并截图获得多个 JPG 文件。
  • 合流模式 (isMixingEnabled 为 true)下,对合流录制,得到一个 MP4 视频文件,并对各单流截图,获得多个 JPG 文件。

◆ AUDIO_FORMAT_TYPE

音频解码格式。

枚举值
AUDIO_FORMAT_DEFAULT_TYPE 

0: 默认音频格式。

AUDIO_FORMAT_AAC_FRAME_TYPE 

1: 原始音频数据 AAC 帧格式。

AUDIO_FORMAT_PCM_FRAME_TYPE 

2: 原始音频数据 PCM 帧格式。

AUDIO_FORMAT_MIXED_PCM_FRAME_TYPE 

3: 原始音频数据 PCM 帧混音格式。

◆ AUDIO_FRAME_TYPE

原始音频数据格式。

枚举值
AUDIO_FRAME_RAW_PCM 

0: PCM 格式。

AUDIO_FRAME_AAC 

1: AAC 格式。

◆ MEMORY_TYPE

存储方式。

枚举值
STACK_MEM_TYPE 

0: 栈。

HEAP_MEM_TYPE 

1: 堆。

◆ VIDEO_FRAME_TYPE

原始视频数据格式。

枚举值
VIDEO_FRAME_RAW_YUV 

0: YUV 格式。

VIDEO_FRAME_H264 

1: H.264 格式。

VIDEO_FRAME_JPG 

2: JPG 格式。

◆ TRIGGER_MODE_TYPE

选择录制启动模式。

枚举值
AUTOMATICALLY_MODE 

0: (默认)自动模式。此模式下,录制 App 加入频道即开始录制,退出频道即停止录制。

MANUALLY_MODE 

1: 手动模式。此模式下,可以调用 startServicestopService 方法灵活开始、暂停录制。

◆ LANGUAGE_TYPE

编程语言。

枚举值
CPP_LANG 

0: (默认)CPP。

JAVA_LANG 

1: Java。

◆ AUDIO_PROFILE_TYPE

录制文件的音频编码配置。设置采样率,码率,编码模式和声道数。只在合流模式(isMixingEnabled 为 true)下生效。

枚举值
AUDIO_PROFILE_DEFAULT 

(默认)音频默认设置,采样率 48 KHz,单声道,编码码率为 48 Kbps。

AUDIO_PROFILE_HIGH_QUALITY 

高音质模式,采样率 48 KHz,单声道,编码码率 128 Kbps。

AUDIO_PROFILE_HIGH_QUALITY_STEREO 

高音质立体声,采样率 48 KHz,双声道,编码码率 192 Kbps。

◆ agora_log_level

Log 等级。日志等级顺序从低到高是: FATAL,ERROR,WARN,NOTICE,INFO,DEBUG。

枚举值
AGORA_LOG_LEVEL_FATAL 

1: 日志等级为 Fatal。

AGORA_LOG_LEVEL_ERROR 

2: 日志等级为 Error。

AGORA_LOG_LEVEL_WARN 

3: 日志等级为 Warn。

AGORA_LOG_LEVEL_NOTICE 

4: 日志等级为 Notice。

AGORA_LOG_LEVEL_INFO 

5: 日志等级为 Info。

AGORA_LOG_LEVEL_DEBUG 

6: 日志等级为 Debug。

◆ MIXED_AV_CODEC_TYPE

实时混合语音和视频。仅当 isMixingEnabled 为 true 时有效。

查看录制文件支持的播放器列表

枚举值
MIXED_AV_DEFAULT 

0: (默认)不混合音频和视频。

MIXED_AV_CODEC_V1 

1: 音频和视频混合成一个文件,录制文件格式为 MP4,但播放器支持有限。

MIXED_AV_CODEC_V2 

2: 音频和视频混合成一个文件,录制文件格式为 MP4,支持更多播放器。