本地截图上传
enableContentInspect
开启/关闭本地截图上传。
abstract enableContentInspect(
    enabled: boolean,
    config: ContentInspectConfig
  ): number;
开启本地截图上传后,SDK 会根据你在 ContentInspectConfig 中设置的模块类型和频率对本地用户发送的视频进行截图和上传。截图完成后,声网服务器会以 HTTPS 请求的形式,向你的服务器发送回调通知,并将所有截图发送至你指定的第三方云存储。
调用时机
加入频道前后均可调用。
调用限制
- 调用该方法前,请确保已在声网控制台开通本地截图上传服务。
 - 视频审核模块选择声网自研插件截图上传(ContentInspectSupervision)时需集成本地截图上传动态库 
libagora_content_inspect_extension.dll,如果删除该动态库会导致无法正常开启本地截图上传功能。 
参数
- enabled
 - 设置是否开启本地截图上传:
true:开启本地截图上传。false:关闭本地截图上传。
 - config
 - 本地截图上传配置。详见 ContentInspectConfig。
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。
 
enableContentInspectEx
开启/关闭本地截图上传。
abstract enableContentInspectEx(
    enabled: boolean,
    config: ContentInspectConfig,
    connection: RtcConnection
  ): number;
该方法可以对多条视频流截图并上传。开启本地截图上传后,SDK 会根据你在 ContentInspectConfig 中设置的模块类型和频率对本地用户发送的视频进行截图和上传。截图完成后,声网服务器会以 HTTPS 请求的形式,向你的服务器发送回调通知,并将所有截图发送至你指定的第三方云存储。
调用时机
加入频道前后均可调用。
调用限制
调用该方法前,请确保已联系技术支持开通本地截图上传服务。
参数
- enabled
 - 设置是否开启本地截图上传:
true:开启本地截图上传。false:关闭本地截图上传。
 - config
 - 本地截图上传配置。详见 ContentInspectConfig。
 - connection
 - Connection 信息。详见 RtcConnection。
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。
 
takeSnapshot
对视频截图。
abstract takeSnapshot(uid: number, filePath: string): number;
该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。
调用时机
该方法需要在加入频道后调用。
调用限制
- 调用该方法返回时 SDK 并没有真正获取截图。
 - 该方法用于本地视频截图时,是对 ChannelMediaOptions 中指定发布的视频流进行截图。
 - 如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。
 
相关回调
成功调用该方法后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功和获取截图的详情。
参数
- uid
 - 用户 ID。如果要对本地用户的视频截图,则设为 0。
 - filePath
 - 截图的本地保存路径,需精确到文件名及格式,例如:
- iOS: 
/App Sandbox/Library/Caches/example.jpg - Android: 
/storage/emulated/0/Android/data/<package name>/files/example.jpg 
注意请确保目录存在且可写。 - iOS: 
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。
 
takeSnapshotWithConfig
在指定观测位置进行视频截图。
abstract takeSnapshotWithConfig(uid: number, config: SnapshotConfig): number;
该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。
调用时机
该方法需要在加入频道后调用。
调用限制
- 调用该方法返回时 SDK 并没有真正获取截图。
 - 该方法用于本地视频截图时,是对 ChannelMediaOptions 中指定发布的视频流进行截图。
 
相关回调
成功调用该方法后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功和获取截图的详情。
参数
- uid
 - 用户 ID。如果要对本地用户的视频截图,则设为 0。
 - config
 - 截图设置,详见 SnapshotConfig。
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。
 
takeSnapshotEx
使用连接 ID 获取视频截图。
abstract takeSnapshotEx(
    connection: RtcConnection,
    uid: number,
    filePath: string
  ): number;
该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。
调用时机
该方法需要在 joinChannelEx 后调用。
调用限制
- 调用该方法返回时 SDK 并没有真正获取截图。
 - 该方法用于本地视频截图时,是对 ChannelMediaOptions 中指定发布的视频流进行截图。
 - 如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。
 
相关回调
成功调用该方法后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功和获取截图的详情。
参数
- connection
 - Connection 信息。详见 RtcConnection。
 - uid
 - 用户 ID。如果要对本地用户的视频截图,则设为 0。
 - filePath
 - 截图的本地保存路径,需精确到文件名及格式,例如:
- iOS: 
/App Sandbox/Library/Caches/example.jpg - Android: 
/storage/emulated/0/Android/data/<package name>/files/example.jpg 
注意请确保目录存在且可写。 - iOS: 
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。
 
takeSnapshotWithConfigEx
使用连接 ID 获取指定观测位置的视频截图。
abstract takeSnapshotWithConfigEx(
    connection: RtcConnection,
    uid: number,
    config: SnapshotConfig
  ): number;
该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。
调用时机
该方法需要在 joinChannelEx 后调用。
调用限制
- 调用该方法返回时 SDK 并没有真正获取截图。
 - 该方法用于本地视频截图时,是对 ChannelMediaOptions 中指定发布的视频流进行截图。
 - 如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。
 
相关回调
成功调用该方法后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功和获取截图的详情。
参数
- connection
 - Connection 信息。详见 RtcConnection。
 - uid
 - 用户 ID。如果要对本地用户的视频截图,则设为 0。
 - config
 - 截图设置,详见 SnapshotConfig。
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。
 
onSnapshotTaken
视频截图结果回调。
  onSnapshotTaken?(
    connection: RtcConnection,
    uid: number,
    filePath: string,
    width: number,
    height: number,
    errCode: number
  ): void;
详情
成功调用 takeSnapshot 后,SDK 触发该回调报告截图是否成功和获取截图的详情。
参数
- uid
 - 用户 ID。如果 uid 为 0,表示本地用户。
 - connection
 - Connection 信息。详见 RtcConnection。
 - filePath
 - 截图的本地保存路径。
 - width
 - 图片宽度(px)。
 - height
 - 图片高度(px)。
 - errCode
 - 截图成功的提示或失败的原因。
- 0:截图成功。
 - < 0: 截图失败。 
- -1:写入文件失败或 JPEG 编码失败。
 - -2:takeSnapshot 方法调用后 1 秒内没有收到指定用户的视频帧。可能的原因有:本地采集停止、远端停止发布或者视频数据处理堵塞。
 - -3:takeSnapshot 方法调用过于频繁。