本地截图上传

  • Flutter

更新时间不可用

enableContentInspect

开启/关闭本地截图上传。

Dart
Future<void> enableContentInspect(
      {required bool enabled, required ContentInspectConfig config});

开启本地截图上传后,SDK 会根据你在 ContentInspectConfig 中设置的模块类型和频率对本地用户发送的视频进行截图和上传。截图完成后,声网服务器会以 HTTPS 请求的形式,向你的服务器发送回调通知,并将所有截图发送至你指定的第三方云存储。

注:

  • 调用该方法前,请确保已在声网控制台开通本地截图上传服务。
  • 视频审核模块选择声网自研插件截图上传(contentInspectSupervision)时需集成本地截图上传动态库 libagora_content_inspect_extension.dll,如果删除该动态库会导致无法正常开启本地截图上传功能。

调用时机

加入频道前后均可调用。

参数

参数名描述
enabled

设置是否开启本地截图上传:

  • true:开启本地截图上传。
  • false:关闭本地截图上传。
config

本地截图上传配置。详见 ContentInspectConfig。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

enableContentInspectEx

开启/关闭本地截图上传。

Dart
Future<void> enableContentInspectEx(
    {required bool enabled,
    required ContentInspectConfig config,
    required RtcConnection connection});

该方法可以对多条视频流截图并上传。开启本地截图上传后,SDK 会根据你在 ContentInspectConfig 中设置的模块类型和频率对本地用户发送的视频进行截图和上传。截图完成后,声网服务器会以 HTTPS 请求的形式,向你的服务器发送回调通知,并将所有截图发送至你指定的第三方云存储。

注: 调用该方法前,请确保已联系技术支持开通本地截图上传服务。

调用时机

加入频道前后均可调用。

参数

参数名描述
enabled

设置是否开启本地截图上传:

  • true:开启本地截图上传。
  • false:关闭本地截图上传。
config

本地截图上传配置。详见 ContentInspectConfig。

connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

takeSnapshot

对视频截图。

Dart
Future<void> takeSnapshot({required int uid, required String filePath});

该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。

注:

  • 该方法是异步操作,调用返回时 SDK 并没有真正获取截图。
  • 该方法用于本地视频截图时,是对 ChannelMediaOptions 中指定发布的视频流进行截图。
  • 如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。

调用时机

该方法需要在加入频道后调用。

相关回调

成功调用该方法后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功和获取截图的详情。

参数

参数名描述
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
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

takeSnapshotWithConfig

在指定观测位置进行视频截图。

Dart
Future<void> takeSnapshotWithConfig(
      {required int uid, required SnapshotConfig config});

该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。

注:

  • 该方法是异步操作,调用返回时 SDK 并没有真正获取截图。
  • 该方法用于本地视频截图时,是对 ChannelMediaOptions 中指定发布的视频流进行截图。

调用时机

该方法需要在加入频道后调用。

相关回调

成功调用该方法后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功和获取截图的详情。

参数

参数名描述
uid

用户 ID。如果要对本地用户的视频截图,则设为 0。

config

截图设置,详见 SnapshotConfig。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

takeSnapshotEx

使用连接 ID 获取视频截图。

Dart
Future<void> takeSnapshotEx(
      {required RtcConnection connection,
      required int uid,
      required String filePath});

该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。

注:

  • 该方法是异步操作,调用返回时 SDK 并没有真正获取截图。
  • 该方法用于本地视频截图时,是对 ChannelMediaOptions 中指定发布的视频流进行截图。
  • 如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。

调用时机

该方法需要在 joinChannelEx 后调用。

相关回调

成功调用该方法后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功和获取截图的详情。

参数

参数名描述
connection

Connection 信息。详见 RtcConnection。

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
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

takeSnapshotWithConfigEx

使用连接 ID 获取指定观测位置的视频截图。

Dart
Future<void> takeSnapshotWithConfigEx(
      {required RtcConnection connection,
      required int uid,
      required SnapshotConfig config});

该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。

注:

  • 该方法是异步操作,调用返回时 SDK 并没有真正获取截图。
  • 该方法用于本地视频截图时,是对 ChannelMediaOptions 中指定发布的视频流进行截图。
  • 如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。

调用时机

该方法需要在 joinChannelEx 后调用。

相关回调

成功调用该方法后,SDK 会触发 onSnapshotTaken 回调,报告截图是否成功和获取截图的详情。

参数

参数名描述
connection

Connection 信息。详见 RtcConnection。

uid

用户 ID。如果要对本地用户的视频截图,则设为 0。

config

截图设置,详见 SnapshotConfig。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

onSnapshotTaken

视频截图结果回调。

Dart
final void Function(RtcConnection connection, int uid, String filePath,
      int width, int height, int errCode)? onSnapshotTaken;

成功调用 takeSnapshot 后,SDK 触发该回调报告截图是否成功和获取截图的详情。

参数

参数名描述
uid

用户 ID。如果 uid 为 0,表示本地用户。

connection

Connection 信息。详见 RtcConnection。

filePath

截图的本地保存路径。

width

图片宽度(px)。

height

图片高度(px)。

errCode

截图成功的提示或失败的原因。

  • 0:截图成功。

  • < 0: 截图失败。

    • -1:写入文件失败或 JPEG 编码失败。
    • -2:takeSnapshot 方法调用后 1 秒内没有收到指定用户的视频帧。可能的原因有:本地采集停止、远端停止发布或者视频数据处理堵塞。
    • -3:takeSnapshot 方法调用过于频繁。
表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类