文档中心
语音通话 (Legacy)
API 参考
Agora C++ API Reference for All Platforms
Agora C++ API Reference for All Platforms
◆ VIDEO_FRAME_TYPE
枚举值 |
---|
FRAME_TYPE_YUV420 | 0:YUV420
|
FRAME_TYPE_YUV422 | 1:YUV422
|
FRAME_TYPE_RGBA | 2: RGBA
|
◆ onCaptureVideoFrame()
virtual bool agora::media::IVideoFrameObserver::onCaptureVideoFrame |
( |
VideoFrame & |
videoFrame | ) |
|
|
pure virtual |
获取本地摄像头采集到的视频数据。
成功注册视频数据观测器后,SDK 会在捕捉到每个视频帧时触发该回调。你可以在回调中获取本地摄像头采集到的视频数据,然后根据场景需要,对视频数据进行前处理。
完成前处理后,你可以在该回调中,传入处理后的视频数据将其发送回 SDK。
- 注解
- 如果你获取到的视频数据类型为 RGBA,Agora 不支持将处理后的 RGBA 数据通过该回调再发送回 SDK。
- 参数
-
- 返回
- 如果视频前处理失败,是否忽略该帧视频:
true
:不忽略
false
:忽略,则该帧数据不再发送回 SDK
◆ onPreEncodeVideoFrame()
virtual bool agora::media::IVideoFrameObserver::onPreEncodeVideoFrame |
( |
VideoFrame & |
videoFrame | ) |
|
|
inlinevirtual |
- 自从
- v3.0.0
获取本地视频编码前的视频数据。
成功注册视频数据观测器后,SDK 会在捕捉到每个视频帧时触发该回调。你可以在回调中获取编码前的视频数据,然后根据场景需要,对视频数据进行处理。
完成处理后,你可以在该回调中,传入处理后的视频数据将其发送回 SDK。
- 注解
- 此处获取的视频数据已经过前处理,如裁剪、旋转和美颜等。
- 如果你获取到的视频数据类型为 RGBA,Agora 不支持将处理后的 RGBA 数据通过该回调再发送回 SDK。
- 参数
-
- 返回
- 如果视频前处理失败,是否忽略该帧视频:
true
:不忽略
false
:忽略,该帧数据不再发送回 SDK
◆ onRenderVideoFrame()
virtual bool agora::media::IVideoFrameObserver::onRenderVideoFrame |
( |
unsigned int |
uid, |
|
|
VideoFrame & |
videoFrame |
|
) |
| |
|
pure virtual |
获取远端发送的视频数据。
成功注册视频数据观测器后,SDK 会在捕捉到每个视频帧时触发该回调。你可以在回调中获取远端发送的视频数据,然后根据场景需求,对视频数据进行后处理。
完成后处理后,你可以在该回调中,传入处理后的视频数据将其发送回 SDK。
- 注解
- 如果你获取到的视频数据类型为 RGBA,Agora 不支持将处理后的 RGBA 数据通过该回调再发送回 SDK。
- 参数
-
- 返回
- 如果视频后处理失败,是否忽略该帧视频:
true
:不忽略
false
:忽略,则该帧数据不再发送回SDK
◆ getVideoFormatPreference()
virtual VIDEO_FRAME_TYPE agora::media::IVideoFrameObserver::getVideoFormatPreference |
( |
| ) |
|
|
inlinevirtual |
◆ getRotationApplied()
virtual bool agora::media::IVideoFrameObserver::getRotationApplied |
( |
| ) |
|
|
inlinevirtual |
设置视频数据旋转。
如果你希望获取的视频数据已根据 VideoFrame 中的旋转信息 rotation
进行旋转,需要在调用 registerVideoFrameObserver 方法时注册该回调。成功注册视频数据观测器后,SDK 会在捕捉到每个视频帧时触发该回调,你需要在该回调的返回值中设置是否对采集到的视频数据进行旋转。
- 注解
- 该功能仅支持 RGBA 格式的视频数据。
- 返回
- 设置 SDK 输出视频数据时是否作旋转处理:
◆ getMirrorApplied()
virtual bool agora::media::IVideoFrameObserver::getMirrorApplied |
( |
| ) |
|
|
inlinevirtual |
设置视频数据镜像。
如果你希望获取的视频数据为原始视频的镜像,需要在调用 registerVideoFrameObserver 方法时注册该回调,成功注册视频数据观测器后,SDK 会在捕捉到每个视频帧时触发该回调,你需要在该回调的返回值中设置是否对原始视频数据作镜像处理。
- 注解
- 该功能仅支持 RGBA 格式的视频数据。
- 返回
- 设置 SDK 输出视频数据时是否作镜像处理:
◆ getSmoothRenderingEnabled()
virtual bool agora::media::IVideoFrameObserver::getSmoothRenderingEnabled |
( |
| ) |
|
|
inlinevirtual |
- 自从
- v3.0.0
设置获取的视频帧是否平滑输出。
如果你希望从 onRenderVideoFrame 获取的视频帧出帧时间间隔更均匀,可以在 调用 registerVideoFrameObserver 方法时 注册 getSmoothRenderingEnabled
回调,并将该回调的返回值设为 true
。
- 注解
- 该回调需要在加入频道前注册。
- 该回调适用于对获取的视频帧处理后自渲染的场景,不适用于处理后传回 SDK 的场景。
- 返回
- 设置是否对获取的视频帧平滑处理:
- true:平滑处理
- false:(默认)不平滑处理