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 的错误代码,请参考互动直播错误代码
枚举值
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 产生的错误。详见互动直播错误代码

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 的警告代码,请参考互动直播警告代码
枚举值
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 时有效。

播放器列表

平台 播放器/浏览器 mixedVideoAudio = 0 mixedVideoAudio = 1 mixedVideoAudio = 2
Linux VLC Media Player 支持 支持 支持
Linux ffplayer 支持 支持 支持
Linux Chrome 不支持 不支持 不支持
Windows Media Player 支持 支持 支持
Windows KM Player 支持 支持 支持
Windows VLC Player 支持 支持 支持
Windows Chrome (49.0.2623+) 支持 支持 支持
macOS QuickTime Player 支持 支持 支持
macOS VLC 不支持 不支持 不支持
macOS Movist 支持 支持 支持
macOS MPlayerX 支持 支持 支持
macOS KM Player 不支持 不支持 不支持
macOS Chrome (47.0.2526.111+) 支持 支持 支持
macOS Safari (11.0.3+) 支持 支持 支持
iOS Default Player 支持 支持 支持
iOS VLC for Mobile 不支持 不支持 支持
iOS KM Player 支持 支持 支持
iOS Safari (9.0+) 支持 支持 支持
Android Default Player 支持 支持 支持
Android MX Player 支持 支持 支持
Android VLC for Android 支持 支持 支持
Android KM Player 支持 支持 支持
Android Chrome (49.0.2623+) 支持 支持 支持
枚举值
MIXED_AV_DEFAULT 

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

MIXED_AV_CODEC_V1 

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

MIXED_AV_CODEC_V2 

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