Skip to content

v3.x_WaterMark

xiaoxiaochupei edited this page May 25, 2017 · 1 revision

SDK支持为视频添加水印效果,包含,图片水印和时间水印
水印效果在预览和播放端都可生效
水印功能在推流过程中可动态修改

1. 水印路径设置

有两种方式,逻辑上会先按照绝对路径的方式decode,失败的情况下会去assets目录找:
**方式一:**设置绝对路径, 例如mLogoPath = "/sdcard/test.png";
**方式二:**直接设置在assert目录下面的文件名即可,例如mLogoPath = "test.png";

2. 图片水印设置方式

v3.x通过KSYStreamer的接口showWaterMarkLogohideWaterMarkLogo来显示和隐藏水印

接口说明:

/**
 * 设置并显示logo水印
 *
 * @param path  logo图片文件的路径
 * @param x     logo的显示位置,0-1之间,相对于视频
 * @param y     logo的显示位置,0-1之间,相对于视频
 * @param w     logo的显示宽度,0-1之间,相对于视频,为0时会根据h及logo图片的比例自适应
 * @param h     logo的显示高度,0-1之间,相对于视频,为0时会根据w及logo图片的比例自适应
 * @param alpha logo的透明度,0-1之间
 */
void showWaterMarkLogo(String path, float x, float y, float w, float h, float alpha);

/**
 * 隐藏logo水印
 */
void hideWaterMarkLogo();

如果宽或高设置为0,SDK内部会自行根据logo的原始比例进行计算

3. 时间水印设置方式

v3.x通过KSYStreamer的接口showWaterMarkTimehideWaterMarkTime来显示和隐藏时间水印

接口说明:

/**
 * 在推流视频中显示时间水印
 *
 * @param x     时间戳的显示位置,0-1之间,相对于视频
 * @param y     时间戳的显示位置,0-1之间,相对于视频
 * @param w     时间戳的显示宽度,0-1之间,相对于视频,高度会自适应
 * @param color 时间戳的颜色
 * @param alpha 时间戳的显示透明度,0-1之间
 */
void showWaterMarkTime(float x, float y, float w, int color, float alpha);

/**
 * 隐藏推流视频中的时间水印
 */
void hideWaterMarkTime();

代码示例:

mStreamer.showWaterMarkLogo(mLogoPath, 0.08f, 0.06f, 0.27f, 0.15f, 0.8f);
mStreamer.showWaterMarkTime(0.02f, 0.015f, 0.4f, Color.RED, 1.0f);
Clone this wiki locally