直播水印

  • Flutter

更新时间不可用

addVideoWatermark

添加本地视频水印。

Dart
Future<void> addVideoWatermark(
    {required String watermarkUrl, required WatermarkOptions options});

废弃

弃用:该方法已废弃,请改用 addVideoWatermarkWithConfig。

该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上,同一直播频道中的用户、旁路直播观众和采集设备都能看到或采集到该水印图片。当前只支持在直播视频流中添加一个水印,后添加的水印会替换掉之前添加的水印。 水印坐标和 setVideoEncoderConfiguration 方法中的设置有依赖关系:

  • 如果视频编码方向(OrientationMode)固定为横屏或自适应模式下的横屏,那么水印使用横屏坐标。
  • 如果视频编码方向(OrientationMode)固定为竖屏或自适应模式下的竖屏,那么水印使用竖屏坐标。
  • 设置水印坐标时,水印的图像区域不能超出 setVideoEncoderConfiguration 方法中设置的视频尺寸,否则超出部分将被裁剪。

注:

  • 你需要在调用 enableVideo 方法之后再调用该方法。
  • 如果你只是在旁路推流时添加水印,你可以使用该方法或 startRtmpStreamWithTranscoding 方法设置水印。
  • 待添加水印图片必须是 PNG 格式。该方法支持所有像素格式的 PNG 图片:RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • 如果待添加的 PNG 图片的尺寸与你在该方法中设置的尺寸不一致,SDK 会对 PNG 图片进行缩放或裁剪,以与设置相符。
  • 如果你已设置本地视频为镜像模式,那么此处的本地水印也为镜像。为避免本地用户看本地视频时的水印也被镜像,建议你不要对本地视频同时使用镜像和水印功能,请在应用层实现本地水印功能。

参数

参数名描述
watermarkUrl

待添加的水印图片的本地路径。该方法支持从本地绝对/相对路径添加水印图片。

options

待添加的水印图片的设置选项,详见 WatermarkOptions。

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

返回值

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

所属接口类

addVideoWatermarkWithConfig

向本地视频流添加水印图像。

Dart
Future<void> addVideoWatermarkWithConfig(WatermarkConfig configs);

自从

自 v6.6.2 版本新增。

你可以使用该方法在本地视频流中叠加水印图像,并通过 WatermarkConfig 设置水印在预览画面中的位置、大小和可见性。

参数

参数名描述
configs

水印配置。详见 WatermarkConfig。

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

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

addVideoWatermarkEx

添加本地视频水印。

Dart
Future<void> addVideoWatermarkEx(
      {required String watermarkUrl,
      required WatermarkOptions options,
      required RtcConnection connection});

废弃

弃用:该方法已废弃,请改用 addVideoWatermarkWithConfigEx。

该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上,同一直播频道中的用户、旁路直播观众和采集设备都能看到或采集到该水印图片。当前只支持在直播视频流中添加一个水印,后添加的水印会替换掉之前添加的水印。 水印坐标和 setVideoEncoderConfigurationEx 方法中的设置有依赖关系:

  • 如果视频编码方向(OrientationMode)固定为横屏或自适应模式下的横屏,那么水印使用横屏坐标。
  • 如果视频编码方向(OrientationMode)固定为竖屏或自适应模式下的竖屏,那么水印使用竖屏坐标。
  • 设置水印坐标时,水印的图像区域不能超出 setVideoEncoderConfigurationEx 方法中设置的视频尺寸,否则超出部分将被裁剪。

注:

  • 你需要在调用 enableVideo 方法之后再调用本方法。
  • 待添加水印图片必须是 PNG 格式。本方法支持所有像素格式的 PNG 图片:RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • 如果待添加的 PNG 图片的尺寸与你在本方法中设置的尺寸不一致,SDK 会对 PNG 图片进行缩放或裁剪,以与设置相符。
  • 如果你已经使用 startPreview 方法开启本地视频预览,那么本方法的 visibleInPreview 可设置水印在预览时是否可见。
  • 如果你已设置本地视频为镜像模式,那么此处的本地水印也为镜像。为避免本地用户看本地视频时的水印也被镜像,建议你不要对本地视频同时使用镜像和水印功能,请在应用层实现本地水印功能。

参数

参数名描述
watermarkUrl

待添加的水印图片的本地路径。该方法支持从本地绝对/相对路径添加水印图片。

options

待添加的水印图片的设置选项,详见 WatermarkOptions。

connection

Connection 信息。详见 RtcConnection。

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

返回值

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

所属接口类

addVideoWatermarkWithConfigEx

向本地视频添加水印图像。

Dart
Future<void> addVideoWatermarkWithConfigEx(
      {required WatermarkConfig config, required RtcConnection connection});

自从

自 v6.6.2 版本新增。

适用场景

该方法适用于多频道场景。

参数

参数名描述
config

水印配置,详见 WatermarkConfig。

connection

RtcConnection 对象,详见 RtcConnection。

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

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

clearVideoWatermarkEx

删除已添加的视频水印。

Dart
Future<void> clearVideoWatermarkEx(RtcConnection connection);

参数

参数名描述
connection

Connection 信息。详见 RtcConnection。

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

返回值

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

所属接口类

clearVideoWatermarks

删除已添加的视频水印。

Dart
Future<void> clearVideoWatermarks();

返回值

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

所属接口类

removeVideoWatermark

从本地视频中移除水印图像。

Dart
Future<void> removeVideoWatermark(String id);

自从

自 v6.6.2 版本新增。

该方法根据指定的唯一 ID,从本地视频流中移除之前添加的水印图像。

参数

参数名描述
id

要移除的水印的 ID。该值需与添加水印时使用的 ID 相同。

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

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

removeVideoWatermarkEx

从本地或远端视频流中移除指定的水印图像。

Dart
Future<void> removeVideoWatermarkEx(
      {required String id, required RtcConnection connection});

自从

自 v6.6.2 版本新增。

适用场景

该方法适用于多频道场景。

参数

参数名描述
id

水印 ID。

connection

连接信息。详见 RtcConnection。

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

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类