本地截图上传
- iOS
更新时间不可用
enableContentInspect:config:
启用或关闭本地截图上传功能。
- (int)enableContentInspect:(BOOL)enabled config:(AgoraContentInspectConfig* _Nonnull)config NS_SWIFT_NAME(enableContentInspect(_:config:));调用该方法后,SDK 会根据在 config 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。截图和上传完成后,声网服务器会通过 HTTPS 请求将回调通知发送到你的应用服务器,并将所有截图上传至第三方云存储服务。
注:
- 在调用该方法前,请确保你已在声网控制台启用了本地截图上传功能。
- 当视频审核模块设置为使用声网自研扩展(
AgoraContentInspectTypeSupervise)进行视频审核时,需要引入本地截图上传动态库 AgoraContentInspectExtension.xcframework(iOS)或AgoraContentInspectExtension.framework(macOS)。删除该库将禁用截图上传功能。
调用时机
你可以在加入频道前或加入频道后调用该方法。
参数
| 参数名 | 描述 |
|---|---|
enabled | |
config | 截图和上传的配置,详见 AgoraContentInspectConfig。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
enableContentInspectEx:config:connection:
启用或关闭本地截图上传功能。
- (int)enableContentInspectEx:(BOOL)enabled config:(AgoraContentInspectConfig* _Nonnull)config connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(enableContentInspectEx(_:config:connection:));该方法可对多个视频流进行截图并上传。启用该功能后,SDK 会根据你在 AgoraContentInspectConfig 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。完成截图上传后,声网服务器会通过 HTTPS 请求向你的应用服务器发送回调通知,并将所有截图上传至第三方云存储服务。
注: 调用该方法前,请确保你已联系技术支持开通本地截图上传服务。
适用场景
该方法适用于多频道场景。
调用时机
该方法可在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
enabled | |
config | 截图和上传的配置。详见 AgoraContentInspectConfig。 |
connection | 连接信息。详见 AgoraRtcConnection。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
takeSnapshot:filePath:
截取视频流快照并保存为 JPG 图像。
- (NSInteger)takeSnapshot:(NSInteger)uid filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(takeSnapshot(_:filePath:));该方法从指定用户的视频流中截取快照,并将生成的 JPG 图像保存到指定路径。
注:
- 该方法为异步方法,在方法调用返回时,SDK 尚未完成快照操作。
- 当用于本地视频快照时,该方法会对 AgoraRtcChannelMediaOptions 中指定的视频流进行快照。
- 如果用户的视频已被预处理,例如添加水印或美颜,生成的快照将包含预处理效果。
调用时机
请在加入频道后调用该方法。
相关回调
调用该方法成功后,SDK 会触发 rtcEngine:snapshotTaken:filePath:width:height:errCode: 回调,报告快照是否成功以及快照的详细信息。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
takeSnapshotWithConfig:config:
截取指定用户视频的截图并保存为 JPG 文件。
- (NSInteger)takeSnapshotWithConfig:(NSInteger)uid config:(AgoraSnapshotConfig* _Nonnull)config NS_SWIFT_NAME(takeSnapshotWithConfig(_:config:));该方法截取指定用户的视频流的快照,生成 JPG 图像,并将其保存到指定路径。
注:
- 该方法为异步方法,在方法调用返回时 SDK 尚未完成截图操作。
- 用于本地视频截图时,该方法会对 AgoraRtcChannelMediaOptions 中指定的视频流进行截图。
调用时机
请在加入频道后调用该方法。
相关回调
调用该方法成功后,SDK 会触发 rtcEngine:snapshotTaken:filePath:width:height:errCode: 回调,报告截图是否成功以及截图的详细信息。
参数
| 参数名 | 描述 |
|---|---|
uid | |
config | 截图的配置,详见 AgoraSnapshotConfig。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
takeSnapshotEx:uid:filePath:
使用连接 ID 对视频流进行截图。
- (NSInteger)takeSnapshotEx:(AgoraRtcConnection * _Nonnull)connection uid:(NSInteger)uid filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(takeSnapshotEx(_:uid:filePath:));该方法对指定用户的视频流进行截图,生成 JPG 图像并保存到指定路径。该方法为异步调用,方法返回时 SDK 尚未完成截图操作。当用于本地视频截图时,该方法会对 AgoraRtcChannelMediaOptions 中指定的视频流进行截图。如果用户的视频已进行预处理,例如添加水印或美颜,截图结果中会包含这些预处理效果。
注: 该方法为异步调用,方法返回时 SDK 尚未完成截图操作。当用于本地视频截图时,该方法会对 AgoraRtcChannelMediaOptions 中指定的视频流进行截图。如果用户的视频已进行预处理,例如添加水印或美颜,截图结果中会包含这些预处理效果。
适用场景
适用于多频道场景。
调用时机
请在调用 joinChannelExByToken:connection:delegate:mediaOptions:joinSuccess: 之后调用该方法。
相关回调
成功调用该方法后,SDK 会触发 rtcEngine:snapshotTaken:filePath:width:height:errCode: 回调,报告截图是否成功以及截图的详细信息。
参数
| 参数名 | 描述 |
|---|---|
connection | 连接信息。详见 AgoraRtcConnection。 |
uid | |
filePath |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
takeSnapshotExWithConfig:uid:config:
获取指定用户视频流的截图。
- (NSInteger)takeSnapshotExWithConfig:(AgoraRtcConnection * _Nonnull)connection uid:(NSInteger)uid config:(AgoraSnapshotConfig* _Nonnull)config NS_SWIFT_NAME(takeSnapshotExWithConfig(_:uid:config:));该方法从指定用户的视频流中截取一帧图像,生成 JPG 图片,并保存到指定路径。
该方法为异步调用,调用返回时 SDK 尚未完成截图。
用于本地视频截图时,该方法会对 AgoraRtcChannelMediaOptions 中指定的视频流进行截图。
如果用户的视频已进行预处理(如添加水印或美颜),截图结果将包含预处理效果。
适用场景
适用于多频道场景。
调用时机
请在调用 joinChannelExByToken 之后调用该方法。
参数
| 参数名 | 描述 |
|---|---|
connection | 连接信息。详见 AgoraRtcConnection。 |
uid | |
config | 截图的配置信息。详见 AgoraSnapshotConfig。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
rtcEngine:snapshotTaken:filePath:width:height:errCode:
报告视频截图的结果。
- (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine snapshotTaken:(NSUInteger)uid filePath:(NSString* _Nonnull)filePath width:(NSInteger)width height:(NSInteger)height errCode:(NSInteger)errCode NS_SWIFT_NAME(rtcEngine(_:snapshotTaken:filePath:width:height:errCode:));调用 takeSnapshot:filePath: 方法后,SDK 会触发该回调,报告截图是否成功以及截图的详细信息。
触发时机
调用 takeSnapshot:filePath: 方法成功后触发。
参数
| 参数名 | 描述 |
|---|---|
engine | 引擎实例,详见 AgoraRtcEngineKit。 |
uid | |
filePath | |
width | |
height | |
errCode | 截图操作的状态码:
|