简介
videotrimmer是在OpenHarmony环境下,提供视频剪辑能力的三方库。
效果展示:
安装教程
ohpm install @ohos/videotrimmer
OpenHarmony ohpm环境配置等更多内容,请参考 如何安装OpenHarmony ohpm包 。
使用说明
目前支持MP4格式。
视频格式 | 是否支持 |
---|---|
MP4 | 是 |
目前支持H264
编解码格式 | 是否支持 |
---|---|
H264 | 是 |
使用VideoTrimmerView
- 构建VideoTrimmerOption对象:
.then(uint8 =>{let imageSource = image.createImageSource(uint8.buffer as any); // 步骤一:文件转为pixelMap 然后变换 给Image组件imageSource.createPixelMap().then(pixelmap => {this.videoTrimmerOption = {srcFilePath: this.filePath,listener:{onStartTrim: ()=>{console.log('dodo 开始裁剪')this.dialogController.open()},onFinishTrim:(path:string) => {console.log('dodo 裁剪成功 path='+path)this.outPath = path;this.dialogController.close()},onCancel:()=>{console.log('dodo 用户取消')router.replaceUrl({url:'pages/Index',params:{outFile: this.outPath}})}},loadFrameListener:{onStartLoad:()=>{console.log('dodo 开始获取帧数据')this.dialogController.open()},onFinishLoad:()=>{console.log('dodo 获取帧数据结束')this.dialogController.close()}},frameBackground: "#FF669900",framePlaceholder: pixelmap}})})
- 界面build()中使用VideoTrimmerView组件,传入VideoTrimmerOption对象
build() {Row() {Column() {VideoTrimmerView( {videoTrimmerOption:$videoTrimmerOption})}.width('100%')}.height('100%')}
接口说明
VideoTrimmerOption 视频剪辑选项
字段 | 描述 |
---|---|
srcFilePath | 视频源路径 |
listener | 裁剪回调 |
loadFrameListener | 加载帧回调 |
VIDEO_MAX_TIME | 指定裁剪长度 默认值10秒 |
VIDEO_MIN_TIME | 最小剪辑时间 |
MAX_COUNT_RANGE | seekBar的区域内一共有多少张图片 |
THUMB_WIDTH | 裁剪视频预览长方形条状左右边缘宽度 |
PAD_LINE_WIDTH | 裁剪视频预览长方形条状上下边缘高度 |
framePlaceholder | 当加载帧没有完成,默认的占位图 |
| frameBackground |
VideoTrimListener 视频剪辑回调
方法名 | 入参 | 接口描述 |
---|---|---|
onStartTrim(); | 无 | 开始剪辑 |
onFinishTrim(outputFile:string); | outputFile:string | 完成剪辑 |
onCancel(); | 无 | 取消剪辑 |
VideoLoadFramesListener 视频加载回调
方法名 | 入参 | 接口描述 |
---|---|---|
onStartLoad(); | 无 | 开始加载视频帧 |
onFinishLoad(); | 无 | 完成加载视频帧 |
约束与限制
在下述版本验证通过:
DevEco Studio: 4.1 Canary2 (4.1.3.322), SDK: API11 (4.1.3.1)
HSP场景适配:
VideoTrimmerOption配置类新增可选参数context,在HSP场景下需要传入正确的context,才能保证三方库后续正确获取Resource资源。
非HSP场景不影响原功能,context可以不传。
目录结构
|----ohos_video_trimmer
| |----entry # 示例代码文件夹|----pages # 页面测试代码|----index.ets #测试入口页面|----Video.ets #剪辑主要测试页面|----FileUtils.ets #工具类
| |---- screenshots #截图
| |---- videotrimmer # video_trimmer库文件夹
| |---- src # video_trimmer库核心代码|----components|----RangeSeekBarView.ets #自定义组件,选定视频剪辑长度|----TimeUtils.ets #时间处理工具类|----VideoLoadFramesListener.ets # 加载帧回调接口|----VideoThumbListView.ets #自定义组件,视频帧列表|----VideoTrimListener.ets # 视频剪辑回调接口|----VideoTrimmerOption.ets # 视频剪辑选项|----VideoTrimmerView.ets #自定义视频剪辑组件
| |---- README.MD # 安装使用方法
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:
如何快速入门:https://qr21.cn/FV7h05
- 基本概念
- 构建第一个ArkTS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ……
鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向