OpenHarmony多媒体-video_trimmer

发布于:2024-04-29 ⋅ 阅读:(169) ⋅ 点赞:(0)

简介

videotrimmer是在OpenHarmony环境下,提供视频剪辑能力的三方库。

效果展示:

安装教程

 ohpm install @ohos/videotrimmer

OpenHarmony ohpm环境配置等更多内容,请参考 如何安装OpenHarmony ohpm包

使用说明

目前支持MP4格式。

视频格式 是否支持
MP4

目前支持H264

编解码格式 是否支持
H264

使用VideoTrimmerView

  1. 构建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
         ​}
       ​})


     ​})
  1. 界面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

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向