视频截图上传
EnableContentInspect
开启/关闭视频截图上传。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int EnableContentInspect(bool enabled, FContentInspectConfig& config);
详情
开启视频截图上传后,SDK 会根据你在 FContentInspectConfig 中设置的模块类型和频率对本地用户发送的视频进行截图和上传。截图完成后,声网服务器会以 HTTPS 请求的形式,向你的服务器发送回调通知,并将所有截图发送至你指定的第三方云存储。
信息
调用该方法前,请确保已联系技术支持开通视频截图上传服务。
参数
- enabled
- 设置是否开启视频截图上传:
true
:开启视频截图上传false
:关闭视频截图上传
- config
- 视频截图上传配置。详见 FContentInspectConfig。信息视频审核模块选择声网自研插件截图上传(CONTENT_INSPECT_SUPERVISION)时需集成视频截图上传动态库
libagora_content_inspect_extension.dll
,如果删除该动态库会导致无法正常开启视频截图上传功能。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
TakeSnapshot
获取视频截图。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int TakeSnapshot(int64 uid, FString filePath);
详情
该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。
该方法是异步操作,调用返回时 SDK 并没有真正获取截图。成功调用该方法后,SDK 会触发 FOnSnapshotTaken 回调报告截图是否成功和获取截图的详情。
注意
- 该方法需要在加入频道后调用。
- 该方法用于本地视频截图时,是对 FChannelMediaOptions 中指定发布的视频流进行截图。
- 如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。
参数
- uid
- 用户 ID。如果要对本地用户的视频截图,则设为 0。
- filePath
- 截图的本地保存路径,需精确到文件名及格式, 例如:
- Windows:
C:\Users\<user_name>\AppData\Local\Agora\<process_name>\example.jpg
- iOS:
/App Sandbox/Library/Caches/example.jpg
- macOS:
~/Library/Logs/example.jpg
- Android:
/storage/emulated/0/Android/data/<package name>/files/example.jpg
- Windows:
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
TakeSnapshotEx
获取视频截图。
C++
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int TakeSnapshotEx(const FRtcConnection& connection, int64 uid, FString filePath);
详情
该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。
该方法是异步操作,调用返回时 SDK 并没有真正获取截图。成功调用该方法后,SDK 会触发 FOnSnapshotTaken 回调报告截图是否成功和获取截图的详情。
注意
- 该方法需要在调用 JoinChannelEx 后调用。
- 该方法用于本地视频截图时,是对 FChannelMediaOptions 中指定发布的视频流进行截图。
- 如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。
参数
- connection
- Connection 信息。详见 FRtcConnection。
- uid
- 用户 ID。如果要对本地用户的视频截图,则设为 0。
- filePath
- 截图的本地保存路径,需精确到文件名及格式, 例如:
- Windows:
C:\Users\<user_name>\AppData\Local\Agora\<process_name>\example.jpg
- iOS:
/App Sandbox/Library/Caches/example.jpg
- macOS:
~/Library/Logs/example.jpg
- Android:
/storage/emulated/0/Android/data/<package name>/files/example.jpg
- Windows:
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
FOnSnapshotTaken
视频截图结果回调。
C++
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FiveParams(FOnSnapshotTaken, int64, uid, FString, filePath, int, width, int, height, int, errCode);
详情
成功调用 TakeSnapshot 后,SDK 触发该回调报告截图是否成功和获取截图的详情。
参数
- uid
- 用户 ID。如果 uid 为 0,表示本地用户。
- filePath
- 截图的本地保存路径。
- width
- 图片宽度(px)。
- height
- 图片高度(px)。
- errCode
- 截图成功的提示或失败的原因。
- 0:截图成功。
- < 0: 截图失败。
- -1:写入文件失败或 JPEG 编码失败。
- -2:TakeSnapshot 方法调用后 1 秒内没有收到指定用户的视频帧。可能的原因有:本地采集停止、远端停止发布或者视频数据处理堵塞。
- -3:TakeSnapshot 方法调用过于频繁。