本地截图上传
enableContentInspect
启用或关闭本地截图上传功能。
public abstract int enableContentInspect(boolean enabled, ContentInspectConfig config);
SDK 会根据在 ContentInspectConfig 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。完成截图和上传后,声网服务器会通过 HTTPS 请求将回调通知发送到你的应用服务器,并将所有截图发送到第三方云存储服务。
- 在调用该方法前,请确保你已在声网控制台启用本地截图上传功能。
- 当视频审核模块设置为使用声网自研扩展(
CONTENT_INSPECT_TYPE_SUPERVISE)进行视频审核时,需要使用本地截图上传动态库 agora_content_inspect_extension.so。删除该库将禁用截图上传功能。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
- enabled
- 是否启用本地截图上传功能:
- true:启用本地截图上传功能。
- false:关闭本地截图上传功能。
- config
- 截图上传配置,详见 ContentInspectConfig。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
enableContentInspectEx
启用或关闭本地截图上传功能。
public abstract int enableContentInspectEx(boolean enabled, ContentInspectConfig config, RtcConnection connection);
启用该功能后,SDK 会根据你在 ContentInspectConfig 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。截图上传后,声网服务器会通过 HTTPS 请求将回调通知发送到你的应用服务器,并将所有截图上传至第三方云存储服务。
适用场景
该方法适用于多频道场景。
调用时机
该方法可在加入频道前或后调用。
参数
- enabled
- 是否启用本地截图上传功能:
- true:启用本地截图上传功能。
- false:关闭本地截图上传功能。
- config
- 截图上传的配置参数,详见 ContentInspectConfig。
- connection
- 连接信息,详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
takeSnapshot [1/2]
截取指定用户的视频流快照并保存为 JPG 图像。
public abstract int takeSnapshot(int uid, String filePath);
调用时机
请在加入频道后调用该方法。
相关回调
调用该方法成功后,SDK 会触发 onSnapshotTaken 回调,报告快照是否成功以及快照的详细信息。
参数
- uid
- 用户 ID。如果要截取本地用户的视频快照,请将
uid设置为 0。 - filePath
- 快照的本地路径(包含文件扩展名)。例如:信息请确保指定的路径存在且可写。
- Android:
/storage/emulated/0/Android/data/<package name>/files/example.jpg
- Android:
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
takeSnapshot [2/2]
在指定的观察点截取视频截图。
public abstract int takeSnapshot(int uid, SnapshotConfig config);
- 该方法为异步调用,调用返回时 SDK 尚未完成截图操作。
- 当用于本地视频截图时,该方法会对 ChannelMediaOptions 中指定的视频流进行截图。
调用时机
请在加入频道后调用该方法。
相关回调
调用该方法成功后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功以及截图的详细信息。
参数
- uid
- 用户 ID。如果要截取本地用户的视频,请将
uid设置为 0。 - config
- 截图的配置信息,详见 SnapshotConfig。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
takeSnapshotEx [1/2]
使用连接 ID 对视频流进行截图。
public abstract int takeSnapshotEx(RtcConnection connection, int uid, String filePath);
takeSnapshotEx 为异步调用,调用该方法时 SDK 尚未完成截图操作。用于本地视频截图时,会对 ChannelMediaOptions 中指定的视频流进行截图。如果用户的视频已进行预处理(如添加水印或美颜),截图结果中会包含这些预处理效果。适用场景
适用于多频道场景。
调用时机
请在调用 joinChannelEx 后调用该方法。
相关回调
调用该方法成功后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功以及截图的详细信息。
参数
- connection
- 连接信息。详见 RtcConnection。
- uid
- 用户 ID。如果要对本地用户的视频进行截图,请将
uid设置为 0。 - filePath
- 截图的本地路径(包含文件扩展名)。例如:信息请确保指定的路径存在且可写。
- Android:
/storage/emulated/0/Android/data/<package name>/files/example.jpg
- Android:
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
takeSnapshotEx [2/2]
通过连接 ID 获取指定用户的视频截图。
public abstract int takeSnapshotEx(RtcConnection connection, int uid, SnapshotConfig config);
- 该方法为异步调用,调用该方法后 SDK 并不会立即完成截图。
- 用于本地视频截图时,该方法会对 ChannelMediaOptions 中指定的视频流进行截图。
- 如果用户的视频已进行预处理,例如添加水印或美颜,截图结果中会包含这些预处理效果。
适用场景
适用于多频道场景。
调用时机
请在调用 joinChannelEx 后调用该方法。
相关回调
调用该方法成功后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功以及截图的详细信息。
参数
- connection
- 连接信息,详见 RtcConnection。
- uid
- 用户 ID。如果要截取本地用户的视频,请将
uid设置为 0。 - config
- 截图的配置信息,详见 SnapshotConfig。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
onSnapshotTaken
视频截图结果回调。
public void onSnapshotTaken(int uid, String filePath, int width, int height, int errCode)
该回调在调用 takeSnapshot 方法成功后被触发,用于报告截图的详细信息和是否成功。
触发时机
该回调在调用 takeSnapshot 方法成功后被触发。
参数
- uid
- 用户 ID。
uid为 0 表示本地用户。 - filePath
- 截图的本地路径。
- width
- 截图的宽度(像素)。
- height
- 截图的高度(像素)。
- errCode
- 截图结果的错误码:
- 0:成功。
- < 0:失败:
- -1:SDK 写入文件或编码 JPEG 图像失败。
- -2:调用
takeSnapshot方法成功后 1 秒内未找到指定用户的视频流。可能原因包括:本地采集停止、远端停止发布或视频数据处理阻塞。 - -3:调用
takeSnapshot方法过于频繁。