OpenHarmony多媒体-video_trimmer

204 阅读2分钟

简介

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%')
  }

DD一下:鸿蒙开发各类文档,可关注公Z号<程序猿百晓生>霍取。

1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

接口说明

VideoTrimmerOption 视频剪辑选项

字段描述
srcFilePath视频源路径
listener裁剪回调
loadFrameListener加载帧回调
VIDEO_MAX_TIME指定裁剪长度 默认值10秒
VIDEO_MIN_TIME最小剪辑时间
MAX_COUNT_RANGEseekBar的区域内一共有多少张图片
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  # 安装使用方法