API 参考
本地录制 SDK 的 Engine 生命周期、控制与观测接口。
API 参考
C++ 公开面(固定)
公开面由 公开的 Linux 录制接口定义 生成到 SDK 生成的公开头文件:
| 类型 | 说明 |
|---|---|
IRecordingEngine / IRecordingEngineEventHandler | Legacy 3.x 面(加入频道即开始录制) |
RecordingConfig / RecordingEngineProperties | Legacy 配置与属性 |
IAgoraService / AgoraServiceConfiguration | 4.x 服务对象 |
IAgoraMediaRtcRecorder / IAgoraMediaRtcRecorderEventHandler | 4.x 录制器(显式 startRecording/stopRecording) |
IAgoraMediaComponentFactory / IRecorderVideoFrameObserver | 4.x 工厂与帧观察者 |
| 45 个结构体 / 48 个枚举 | VideoMixingLayout、WatermarkConfig、RecordingStats、ERROR_CODE_TYPE… |
每个接口另有 agora::Default<InterfaceName> 默认实现:真实实现的成员被覆盖,其余成员抛 NotSupportedException(4, "Owner.member")。
扩展 API(不属于固定面)
| 成员 | 作用 |
|---|---|
RecordingEngine::SetSinkFactory / RtcRecorder::SetSinkFactory | 注入 IRecordingSink |
PushVideoFrame / PushAudioFrame | 宿主推入解码后的帧 |
SetFrameSource + PumpFrames(n) | 从 IFrameSource 拉取帧 |
InjectUser / RemoveUser | 维护参与者目录,供 getUserInfoByUid 查询 |
RecordingPipeline / VerifyRecordingFile / SyntheticFrameSource | 状态机、产物校验、测试用帧源 |
本地 REST 控制面(egress sink)
EgressWorkerSink 使用同机 egress worker 的控制面:
| 方法 | 路径 | 用途 |
|---|---|---|
POST | /jobs | 提交录制任务(roomName、fileOutputs、maxDurationSeconds) |
GET | /jobs/{id} | 轮询任务状态与 files[] |
DELETE | /jobs/{id} | 取消任务(停止录制) |
Stop 会轮询到终态(completed/failed/cancelled):只有 completed 且文件记录(本地可读文件或正的 size)通过校验才返回成功。