OpenHarmony多媒体-video_trimmer

news2024/12/23 23:19:56

简介

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_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  # 安装使用方法

为了能让大家更好的学习鸿蒙(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.鸿蒙南向开发方向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1605887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flattened Butterfly 扁平蝶形拓扑

Flattened Butterfly 扁平蝶形拓扑 1. 传统蝶形网络 Butterfly Topology2. 扁平蝶形拓扑 Flattened Butterfly3.On-Chip Flattened Butterfly 扁平蝶形拓扑应用于片上网络 Flattened Butterfly 扁平蝶形拓扑 扁平蝶形拓扑是一种经济高效的拓扑,适用于高基数路由器…

Golang入门基础

文章目录 Golang的背景知识Golang的发展历程Golang的特点Golang的应用领域 开发环境搭建下载并安装SDK包设置环境变量Go项目目录结构 注释变量标识符命名输入和输出运算符算术运算符关系运算符逻辑运算符赋值运算符位运算符其他运算符 Golang的背景知识 Golang的发展历程 Gola…

2024年华中杯数学建模竞赛ABC题思路分析

简单分析一下各个题目可能需要用到的方法和模型,完整代码和成品论文见文末 A题 太阳能路灯光伏板的朝向设计问题: 1. 球面几何、天文学相关知识,如赤纬角、太阳高度角、时角等概念和公式 2. 太阳辐射模型,根据太阳能辐射强度、大气衰减系数等计算地表太阳辐射强度…

2.核心概念与安装配置

核心概念与安装配置 文章目录 核心概念与安装配置1、核心概念Docker整体架构及底层通信原理 2、安装DockerCentos安装Docker引擎阿里云镜像加速Docker run的过程 3、Docker相关命令 1、核心概念 镜像(image) Docker 镜像(Image)就…

【三维Dvhop定位】基于麻雀搜索算法的多通信半径和跳距加权的三维Dvhop定位算法【Matlab代码#81】

文章目录 【可更换其他算法,获取资源请见文章第6节:资源获取】1. Dvhop定位算法2. 麻雀搜索算法3. 多通信半径和跳距加权策略3.1 多通信半径策略3.2 跳距加权策略 4. 部分代码展示5. 仿真结果展示6. 资源获取 【可更换其他算法,获取资源请见文…

Istio介绍

1.什么是Istio Istio是一个开源的服务网格(Service Mesh)框架,它提供了一种简单的方式来为部署在Kubernetes等容器编排平台上的微服务应用添加网络功能。Istio的核心功能包括: 服务治理:Istio能够帮助管理服务之间的…

openGauss学习笔记-266 openGauss性能调优-TPCC性能调优测试指导-文件系统配置

文章目录 openGauss学习笔记-266 openGauss性能调优-TPCC性能调优测试指导-文件系统配置266.1 查看当前数据盘的文件系统类型266.2 对于需要修改的磁盘,备份所需的数据至其他磁盘或其他服务器266.3 格式化磁盘为xfs文件系统266.4 执行**步骤一** openGauss学习笔记-…

allure2教程-3-测试报告定制

领取资料,咨询答疑,请➕wei: June__Go 上一小节,我们学习一下pytestallure2生成html测试报告的方法,本小节我们学习一下allure2测试报告的定制。 allure2报告预览 预览网址:https://demo.qameta.io/allure/# allur…

WordPress的全面解析:为什么它是创建博客和网站的首选

在当前的数字化时代,无论是个人博客还是企业网站,都需要一个强大而灵活的平台以支撑其内容和用户交互。WordPress作为全球最流行的内容管理系统(CMS),以其强大的功能、灵活的定制性和广泛的用户基础,成为了…

问答营销之官方号问答推广技巧

问答营销作为一种网络推广的重要手段,受到各大品牌企业的关注。实战中,问答营销有新起提问再回答和直接回复老问题两种形式,一般做企业官方号问答营销都是选择后者。这里小马识途营销顾问详细解析下开展老问题回复营销的思路和步骤。 一、分析…

[蓝桥杯 | 暴搜] 学会暴搜之路

虽然会调侃蓝桥杯是暴力求解的,但是本弱弱不会搜,不知道如何搜,于是写下这篇碎碎念,记录看到过的,惊艳自己的暴搜。 小总结 题目特征:很复杂的排列组合 说是暴力,其实就是枚举罢了&#xff0…

如何理解信创产品?成为信创产品?

信创产品是指运用信息技术手段创造的产品,它是数据安全、网络安全的基础,也是新基建的重要组成部分。信创产品包括了IT基础设施如CPU芯片、服务器、存储、交换机、路由器、各种云和相关服务内容;基础软件如数据库、操作系统、中间件&#xff…

FebHost:谁可以注册.CA加拿大域名?

在加拿大,互联网域名的注册管理遵循一套独特的规则。特别是对于代表加拿大身份的顶级域名“.ca”,其申请和注册过程涉及一些严格的条件。这些条件确保了只有符合特定标准的个人或实体才能获得这一具有国家象征意义的网络地址。 首先,想要注册…

初识C++ · 类和对象(中)(1)

目录 1 类的6个默认成员函数 2 构造函数 3 析构函数 3 拷贝构造函数 1 类的6个默认成员函数 class Date { public:private:}; 这是一个空类,试问里面有什么? 可能你会觉得奇怪,明明是一个空类,却问里面有什么。其实一点也不…

PE文件(一)PE结构概述

PE结构简述 Windows操作系统是只能运行以内存4D 5A开头,翻译是MZ的可执行文件,也叫做PE结构文件,是以exe,.sys,.dll等等作为后缀的文件。而不同的操作系统能运行的可执行文件都是各自特有的,比如Linux可运…

zabbix 自定义模板,邮件报警,代理服务器,自动发现与自动添加及snmp

目录 一. 自定义监控内容 1. 在客户端创建自定义 key 2. 在 web 页面创建自定义监控项模块 2.1 创建模板 2.2 创建应用集 2.3 创建监控项 2.4 创建触发器 2.5 创建图形 2.6 将主机与模板关联起来 登录测试 2.7 设置邮件报警 测试邮件报警 3. nginx 服务状况的检测…

2024年腾讯云服务器价格一览表

随着云计算技术的快速发展,越来越多的企业和个人开始选择使用云服务器来满足他们的数据存储和计算需求。腾讯云作为国内领先的云服务提供商,其服务器产品因性能稳定、安全可靠而备受用户青睐。那么,2024年腾讯云服务器的价格情况如何呢&#…

状态压缩DP题单

P1433 吃奶酪&#xff08;最短路&#xff09; dp(i, s) 表示从 i 出发经过的点的记录为 s 的路线距离最小值 #include<bits/stdc.h> #define int long long using namespace std; const int N 20; signed main() { int n; cin >> n;vector<double>x(n 1),…

matplotlib plt.gca()学习

之前一直在这个代码里看到plt.gca()的使用&#xff0c;但是一直没搞明白这个怎么用&#xff0c;今天总结一下 gca是get current axis的首字母的缩写&#xff0c;就是控制坐标轴的&#xff0c;也是比较简单的&#xff0c;并不是一个很复杂的函数 移动坐标轴 import matplotlib…

Bacnet 入门参考资料 (一)

[OTC] 在网上整理的一些BACnet的相关资料&#xff0c;在这里作一个整理&#xff0c;方便自己食用。 参考博文 ① BACnet基础入门&#xff1a;https://blog.csdn.net/li1197538342/article/details/128341198 ② BACnet网络讲义 &#xff08;建议先看这个&#xff0c;第1章&a…