java 视频通话插件,Android Java视频通话+直播美颜水印 - 开发者中心 - ZEGO即构科技...

美颜和水印

更新时间:2020-12-28 17:45

1 功能简介

当在视频通话或直播时,希望向对方呈现出良好的肌肤状态,可使用 SDK 的基础美颜功能来实现。开发者可以开启美颜开关,调整美白、磨皮等美颜参数。

当需要为教育类的教学课件设置版权方 Logo 等场景下,可使用 SDK 的水印功能来实现。

本文主要讲述如何利用其 API 实现相关功能。

2 使用步骤

2.1 开启美颜

接口原型:

/** 美颜特性 */

public enum ZegoBeautifyFeature {

/** 无美颜 */

NONE(0),

/** 磨皮 */

POLISH(1 << 0),

/** 全屏美白 */

WHITEN(1 << 1),

/** 皮肤美白 */

SKIN_WHITEN(1 << 2),

/** 锐化 */

SHARPEN(1 << 3);

// 枚举的其它方法 ...

}

/**

* 开/关美颜

*

* 识别视频中的人像进行美颜。开始推流前后都可以设置。

* @param featureBitmask 比特掩码格式,可选择同时开启 ZegoBeautifyFeature 中的几个特性

*/

public void enableBeautify(int featureBitmask)

调用示例:

// 开启磨皮和锐化,sdk 为 ZegoExpressEngine 的实例

sdk.enableBeautify(ZegoBeautifyFeature.POLISH.value()|ZegoBeautifyFeature.SHARPEN.value());

// 关闭所有美颜功能

sdk.enableBeautify(ZegoBeautifyFeature.NONE.value());

2.2 自定义美颜参数

上一节开启美颜功能之后,SDK 将采用默认的美颜参数来进行美颜;用户可根据实际的需求来自定义美颜参数。

接口原型:

public class ZegoBeautifyOption {

/** 美颜磨皮的采样步长,取值范围[0,1],默认 0.2 */

public double polishStep;

/** 美颜美白的亮度参数,值越大亮度越亮,取值范围[0,1],默认 0.5 */

public double whitenFactor;

/** 美颜锐化参数,值越大锐化越强,取值范围[0,1],默认 0.1 */

public double sharpenFactor;

}

/**

* 设置美颜参数

*

* @param option 美颜选项参数

*/

public void setBeautifyOption(ZegoBeautifyOption option)

调用示例:

ZegoBeautifyOption option = new ZegoBeautifyOption();

option.polishStep = 0.4;

option.whitenFactor = 0.5;

option.sharpenFactor = 0.2;

sdk.setBeautifyOption(option);

2.3 使用水印

接口原型:

/**

* 设置推流水印

*

* 推流前设置,水印的布局不能超出推流的视频编码分辨率。

* @param watermark 水印布局左上角为坐标系原点,区域不能超过编码分辨率设置的大小。若为空表示取消水印。

* @param isPreviewVisible 是否本地预览能看见水印

*/

public void setPublishWatermark(@Nullable ZegoWatermark watermark, boolean isPreviewVisible)

2.3.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);

2.3.2 Assets 形式

asset://[图片资源名称]

需要将图片存放在 Android 工程的 assets 目录中:

java 视频通话插件,Android Java视频通话+直播美颜水印 - 开发者中心 - ZEGO即构科技..._第1张图片

调用示例:

// 支持 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 API 参考列表

5 Q&A

Q1:ZegoWatermark 中的 imageURL 如何指定?

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

Q2: ZegoWatermark 中的 layout 如何指定?

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

setVideoConfig 接口。

你可能感兴趣的:(java,视频通话插件)