HarmonyOS鸿蒙Next中实现视频添加水印功能示例代码

HarmonyOS鸿蒙Next中实现视频添加水印功能示例代码

介绍

本示例构建自定义水印组件,利用Video组件的属性为视频添加水印并附有视频播放、暂停、倍速等功能。

实现视频添加水印功能源码链接

效果预览

图片名称

使用说明

自定义修改水印组件,修改视频src即可对相关视频进行添加水平操作。

实现思路

  1. 自定义构建水印组件;
  2. 利用Video属性.overlay为视频添加水印,通过x、y大小设置水印添加的位置;
  3. 添加视频的播放、暂停、倍速等功能。

更多关于HarmonyOS鸿蒙Next中实现视频添加水印功能示例代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS鸿蒙Next中,实现视频添加水印功能可以通过使用MediaLibraryPixelMap接口来完成。以下是一个示例代码,展示如何在视频上添加水印:

import mediaLibrary from '@ohos.multimedia.mediaLibrary';
import image from '@ohos.multimedia.image';

async function addWatermarkToVideo(videoUri: string, watermarkUri: string, outputUri: string) {
    // 获取视频文件
    const media = mediaLibrary.getMediaLibrary();
    const fileAsset = await media.getFileAssets({ uri: videoUri });

    // 获取水印图片
    const imageSource = image.createImageSource(watermarkUri);
    const pixelMap = await imageSource.createPixelMap();

    // 创建视频编辑实例
    const videoEditor = new mediaLibrary.VideoEditor();

    // 添加水印到视频
    await videoEditor.addWatermark(fileAsset, pixelMap, { x: 10, y: 10, width: 100, height: 50 });

    // 保存编辑后的视频
    await videoEditor.save(outputUri);
}

// 示例调用
const videoUri = 'file:///storage/emulated/0/DCIM/Camera/video.mp4';
const watermarkUri = 'file:///storage/emulated/0/Pictures/watermark.png';
const outputUri = 'file:///storage/emulated/0/DCIM/Camera/video_with_watermark.mp4';

addWatermarkToVideo(videoUri, watermarkUri, outputUri).then(() => {
    console.log('Watermark added successfully');
}).catch((err) => {
    console.error('Failed to add watermark:', err);
});

该代码首先获取视频文件和水印图片,然后使用VideoEditor接口将水印添加到视频中,并保存编辑后的视频。

更多关于HarmonyOS鸿蒙Next中实现视频添加水印功能示例代码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,可以通过VideoPlayerCanvas组件实现视频添加水印功能。以下是一个简单的示例代码:

// 创建VideoPlayer组件
VideoPlayer videoPlayer = new VideoPlayer(context);
videoPlayer.setSource(ResourceTable.Media_video); // 设置视频资源

// 创建Canvas组件
Canvas canvas = new Canvas(context);
canvas.setBackgroundColor(Color.WHITE); // 设置画布背景

// 在Canvas上绘制水印
Text text = new Text(context);
text.setText("Watermark");
text.setTextSize(50);
text.setTextColor(Color.BLACK);
canvas.drawText(text, 100, 100, new Paint()); // 绘制水印

// 将Canvas叠加到VideoPlayer上
videoPlayer.addComponent(canvas);

// 播放视频
videoPlayer.start();

此代码在视频播放时,会在指定位置添加一个“Watermark”文字水印。

回到顶部