实时音视频
  • 平台类型
  • 框架 / 引擎
  • iOS
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • 小程序

美颜/水印/截图

更新时间:2021-07-23 23:04

1 功能简介

当在视频通话或直播时,希望向对方呈现出良好的肌肤状态,可结合 AI视觉 实现美颜功能。 当需要为教育类的教学课件设置版权方 Logo 等场景下,可使用 SDK 的水印功能来实现。

美颜功能的实现请参考 实时音视频和AI视觉的搭配使用

本文主要讲述如何利用 SDK 实现水印和截图功能。

2 示例源码下载

请参考 下载示例源码 获取源码。

相关源码请查看 “/ZegoExpressExample/Others/src/main/java/com/example/others/beautyandwatermarkandsnapshot” 目录下的文件。

3 前提条件

在实现水印和截图功能之前,请确保:

4 使用步骤

4.1 水印

ZegoWatermark 对象中的 “imageURL” 参数支持传两种路径格式。

  1. 绝对路径的形式

file://[图片资源名称]:需要将图片存放在 Android 设备的某目录中,例如 Android 的 app 的私有目录:“/sdcard/Android/data/im.zego.zegoexpressapp/ZegoLogo.png”。

// 支持 JPG 与 PNG 格式的图片, 如果图片是放在Android工程的资产assets目录, imageURL 则须使用 "asset://" 作为前缀, 如果是设备上的绝对路径, imageURL 则须使用 "file://" 为前缀 + 设备上的绝对路径
String imageURL = "file:///sdcard/Android/data/im.zego.zegoexpressapp/ZegoLogo.png";

Rect layout = new Rect(0,0,300,600);
ZegoWatermark watermark = new ZegoWatermark(imageURL, layout);

sdk.setPublishWatermark(watermark, true);
  1. Assets 形式

asset://[图片资源名称]:需要将图片存放在 Android 工程的 “assets” 目录中。

// 支持 JPG 与 PNG 格式的图片, 如果图片是放在Android工程的资产assets目录, imageURL 则须使用 "asset://" 作为前缀, 如果是设备上的绝对路径, imageURL 则须使用 "file://" 为前缀 + 设备上的绝对路径
String imageURL = "asset://ZegoLogo.png";

Rect layout = new Rect(0,0,300,600);
ZegoWatermark watermark = new ZegoWatermark(imageURL,layout);

sdk.setPublishWatermark(watermark, true);

4.2 截图

  1. 调用 takePublishStreamSnapshot 接口对推流画面截图。
engine.takePublishStreamSnapshot(new IZegoPublisherTakeSnapshotCallback() {
                    @Override
                    public void onPublisherTakeSnapshotResult(int errorCode, Bitmap image) {
                       //保存图片         
                    }
                });
  1. 调用 takePlayStreamSnapshot 接口对拉流画面截图。
engine.takePlayStreamSnapshot(streamID,new IZegoPlayerTakeSnapshotCallback() {
                    @Override
                    public void onPlayerTakeSnapshotResult(int errorCode, Bitmap image) {
                        //保存图片
                    }
                });
            }

5 API 参考列表

方法 描述
setPublishWatermark 设置推流水印
takePublishStreamSnapshot 对推流画面截图
takePlayStreamSnapshot 对拉流画面截图

6 常见问题

  1. ZegoWatermark 中的 imageURL 如何指定?

    支持 JPG 与 PNG 两种格式的图片,如果图片是放在 Android 工程的 “assets” 目录文件夹中,imageURL 则须使用 “asset://” 作为前缀,如果是设备上的绝对路径,imageURL 则须使用 “file://” 为前缀 + 设备上的绝对路径。

  2. ZegoWatermark 中的 layout 如何指定?

    水印的布局不能超过当前设置的推流的视频编码分辨率,对推流编码分辨率的设置可参考 setVideoConfig 接口。