HarmonyOS 鸿蒙Next 抖音保存视频到相册怎么做到加上水印的?有没有大佬指点一下
HarmonyOS 鸿蒙Next 抖音保存视频到相册怎么做到加上水印的?有没有大佬指点一下
鸿蒙抖音保存视频到相册怎么做到加上水印的?有没有大佬指点一下,有没有视频保存本地加水印的demo,求教!
4 回复
可以参考如下方式给视频添加水印
@Entry
@Component
struct Index {
@State videoSrc: Resource = $rawfile('trailer.mp4')
@State curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X
@State isAutoPlay: boolean = false
@State showControls: boolean = true
controller: VideoController = new VideoController()
private settings: RenderingContextSettings = new RenderingContextSettings(true)
private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
@Builder
WatermarkBuilder() {
Column() {
Row() {
Column() {
Text('20:50')
.fontSize(20)
.fontColor('#3b7ad2')
Text('2024.04.28')
.fontSize(10)
.fontColor('#3b7ad2')
}
.alignItems(HorizontalAlign.Start)
Divider()
.vertical(true)
.height(30)
.width(10)
.strokeWidth(3)
.color('#c68024')
Column() {
Text('星期日')
.fontSize(20)
.fontColor(Color.White)
Text('23°C多云 4201米')
.fontSize(10)
.fontColor(Color.White)
}
.alignItems(HorizontalAlign.Start)
}
.justifyContent(FlexAlign.SpaceAround)
Column() {
Text('经纬度: 113.934934N, 22.570846N')
.fontSize(10)
.fontColor(Color.White)
Text('地址: 113.934934N, 22.570846N')
.fontSize(10)
.fontColor(Color.White)
}
.alignItems(HorizontalAlign.Start)
}
.width('auto')
.height('auto')
.hitTestBehavior(HitTestMode.None)
}
build() {
Column() {
Video({
src: this.videoSrc,
currentProgressRate: this.curRate,
controller: this.controller
})
.width('100%')
.height(600)
.overlay(this.WatermarkBuilder(), {
offset: {
x: -100,
y: 490
}
})
.autoPlay(this.isAutoPlay)
.controls(this.showControls)
.onStart(() => {
console.info('onStart')
})
.onPause(() => {
console.info('onPause')
})
.onFinish(() => {
console.info('onFinish')
})
.onError(() => {
console.info('onError')
})
.onPrepared((e?: DurationObject) => {
if (e != undefined) {
console.info('onPrepared is ' + e.duration)
}
})
.onSeeking((e?: TimeObject) => {
if (e != undefined) {
console.info('onSeeking is ' + e.time)
}
})
.onSeeked((e?: TimeObject) => {
if (e != undefined) {
console.info('onSeeked is ' + e.time)
}
})
.onUpdate((e?: TimeObject) => {
if (e != undefined) {
console.info('onUpdate is ' + e.time)
}
})
Row() {
Button('src').onClick(() => {
this.videoSrc = $rawfile('trailer.mp4') // 切换视频源
}).margin(5)
Button('Watermark').onClick(() => {
this.context.beginPath()
this.context.font = `宋体 ${80}px}`
this.context.textBaseline = "top"
this.context.fillStyle = "#80b2bec3"
this.context.fillText("水印水印水印水印", 100, 100)
this.context.closePath()
}).margin(5)
Button('controls').onClick(() => {
this.showControls = !this.showControls // 切换是否显示视频控制栏
}).margin(5)
}
Row() {
Button('start').onClick(() => {
this.controller.start() // 开始播放
}).margin(5)
Button('pause').onClick(() => {
this.controller.pause() // 暂停播放
}).margin(5)
Button('stop').onClick(() => {
this.controller.stop() // 结束播放
}).margin(5)
Button('setTime').onClick(() => {
this.controller.setCurrentTime(10, SeekMode.Accurate) // 精准跳转到视频的10s位置
}).margin(5)
}
Row() {
Button('rate 0.75').onClick(() => {
this.curRate = PlaybackSpeed.Speed_Forward_0_75_X // 0.75倍速播放
}).margin(5)
Button('rate 1').onClick(() => {
this.curRate = PlaybackSpeed.Speed_Forward_1_00_X // 原倍速播放
}).margin(5)
Button('rate 2').onClick(() => {
this.curRate = PlaybackSpeed.Speed_Forward_2_00_X // 2倍速播放
}).margin(5)
}
}
}
}
interface DurationObject {
duration: number;
}
interface TimeObject {
time: number;
}
您这个只是在播放预览的时候看到水映,没有吧水映添加到视频源里呀
添加水印可以使用三方 ffmpeg 命令实现,可参考https://developer.huawei.com/consumer/cn/forum/topic/0203167322692369520?fid=0109140870620153026
作为IT专家,对于HarmonyOS鸿蒙Next系统下抖音保存视频到相册并添加水印的问题,以下是一些专业解答:
在HarmonyOS鸿蒙Next系统上,抖音保存视频到相册并添加水印的功能,主要依赖于抖音应用的设置以及鸿蒙系统的权限管理。
-
抖音应用内设置:
- 打开抖音应用,进入“设置”。
- 在设置中找到“通用设置”或类似选项。
- 开启“保存自己内容带水印”的开关。
-
保存视频:
- 在抖音中找到想要保存的视频。
- 点击分享按钮,选择“保存到相册”。
-
系统权限管理:
- 确保抖音应用有访问相册的权限。
- 如果没有,可以在鸿蒙系统的“设置”中,找到“应用和服务”,然后选择“应用管理”,在抖音应用的权限管理中开启。
如果以上步骤操作正确,抖音保存的视频应该会自动带上水印并保存到相册中。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html