Java 视频解析相关工具类 (codeing真的是细节决定成败!)
项目中用到了视频解析的工具,简单的说一下,目前jave这个包,只能去下载下来后,手动上传到私服地址进行使用,pom.xml文件中写好配置是无法下载到jar包的。
<dependency><groupId>jack.jave</groupId><artifactId>jave</artifactId><version>1.0.2</version></dependency>
楼主,只用了一个小功能,获取当前视频文件的时长,由于解析出来的是一个long 类型的值,并非我们日常中想用的那种xx:xx:xx 格式,就有的一下的代码:
/*** @ClassName VideoUtil* @Description TODO 视频解析相关工具类* @Author Lucky* @Version 1.0*/public class VideoUtil {public static String readVideoTime(File file2) {Encoder encoder = new Encoder();String length = "";String strHour = "";String strMinute = "";String strSecond = "";try {MultimediaInfo m = encoder.getInfo(file2);long ls = m.getDuration()/1000;int hour = (int) (ls/3600);System.out.println("hour"+hour);if(hour < 10){strHour = "0" + String.valueOf(hour);}else{strHour = String.valueOf(hour);}int minute = (int) (ls%3600)/60;System.out.println("minute"+minute);if(minute < 10){strMinute = "0" + String.valueOf(minute);}else{strMinute = String.valueOf(minute);}int second = (int) (ls-hour*3600-minute*60);System.out.println("second"+second);if(second < 10){strSecond = "0" + String.valueOf(second);}else{strSecond = String.valueOf(second);}System.out.println("strHour--->>>"+strHour);System.out.println("strMinute--->>>"+strMinute);System.out.println("strSecond--->>>"+strSecond);System.out.println(strHour+":"+strMinute+":"+strSecond);length = strHour+":"+strMinute+":"+strSecond;} catch (Exception e) {e.printStackTrace();}return length;}
但是代码写的很low,想简单的优化一下,如下:
/*** @ClassName VideoUtil* @Description TODO 视频解析相关工具类* @Author Lucky* @Version 1.0*/public class VideoUtil {public static String readVideoTime(File file2) {Encoder encoder = new Encoder();String length = "";String strHour = "";String strMinute = "";String strSecond = "";try {MultimediaInfo m = encoder.getInfo(file2);long ls = m.getDuration()/1000;int hour = (int) (ls/3600);strHour = hour > 10 ? strHour : "0" + String.valueOf(hour);int minute = (int) (ls%3600)/60;strMinute = minute > 10 ? strMinute : "0" + String.valueOf(minute);int second = (int) (ls-hour*3600-minute*60);strSecond = second > 10 ? strSecond : "0" + String.valueOf(second)System.out.println("strHour--->>>"+strHour);System.out.println("strMinute--->>>"+strMinute);System.out.println("strSecond--->>>"+strSecond);System.out.println(strHour+":"+strMinute+":"+strSecond);length = strHour+":"+strMinute+":"+strSecond;} catch (Exception e) {e.printStackTrace();}return length;}}
最终在好友的帮助下,完成了最优化版的工具类 ,如下:
/*** @ClassName VideoUtil* @Description TODO 视频解析相关工具类* @Author Lucky* @Version 1.0*/public class VideoUtil {public static String readVideoTime(File file2) {Encoder encoder = new Encoder();String length = "";try {MultimediaInfo m = encoder.getInfo(file2);long ls = m.getDuration()/1000;LocalTime time = LocalTime.ofSecondOfDay(ls);length = time.toString();System.out.println("length--->>>"+length);} catch (Exception e) {e.printStackTrace();}return length;}}
此过程充分的说明了,java很成熟,有很多我们日常中会用到的方法,其实他们都已经写好了。我们自己去实现,很容易出现很多我们自己想不到的问题,要习惯用jdk源生的方法,要站在巨人的肩膀上看世界。
我爱你
即使你满身污秽如刺猬
也有我双手拥抱不忌讳
Java 视频解析相关工具类 (codeing真的是细节决定成败!)相关推荐
- Java XML解析工具类
Java XML解析工具类 Java解析XML的方式有很多,这里不一一说明了,利用三方jar包,实现了一个XML工具类 本身是有个需求,讲三方公司的XML请求文件中的Response里的属性赋值成ja ...
- java 视频解析_ffmpeg解析视频的每一帧(java )
前置条件:下载opencv的jar包导入.ffmpeg package test; import org.opencv.core.Core; import org.opencv.core.Mat; i ...
- Java中的BigDecimal类你真的了解吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:HikariCP www.jianshu.com/p/c81 ...
- MySQL查询多表定义实体类_自己设计一个 JAVA + MyBatis 解析实体类多表通用查询
先来处理一下查询的字段和用到的表吧 //虽然我们使用的时候是实体,但最终还是要解析成sql的,那么我们需要想好解析成sql 时候所用到的东东,提前准备好 class TableEntity { Str ...
- 【java】解析JToolBar类的使用
1.简介 在大部分的Look and Feels下,用户都可以把该工具条拖离原Window组件(除非floatable属性设置为false).为了能够正常的实现拖动效果,该类的实例被建议添加到Bord ...
- 抖音视频解析的工具类
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 一.一个解析抖音分析链接的工具类 import java.io.IOException; import java.util.HashM ...
- [Android开发] Json解析工具类,一个类搞定Json的解析
一.简介 利用递归的方式反射解析到bean里面 二.详细代码 1. Json格式 例如服务器指定规定json格式为: {"code": "--" , // 返回 ...
- java 自定义json解析注解 复杂json解析 工具类
java 自定义json解析注解 复杂json解析 工具类 目录 java 自定义json解析注解 复杂json解析 工具类 1.背景 2.需求-各式各样的json 一.一星难度json[json对象 ...
- java method field_java_解析Java中的Field类和Method类,Field类
Field类中定义了一些方 - phpStudy...
解析Java中的Field类和Method类 Field类Field类中定义了一些方法,可以用来查询字段的类型以及设置或读取字段的值.将这些方法与继承而来的member方法结合在一起.就可以使我们能够 ...
最新文章
- Android 利用源码调试 详解TouchEvent 事件分发机制
- 黑客攻击发现:多个银行类APP存漏洞
- mysql long varchar2_long查询结果转换为varchar2类型
- C#LeetCode刷题之#705-设计哈希集合​​​​​​​(Design HashSet)
- python多维矩阵基础运算中的一点困惑
- 随想录(windows上cuda环境安装)
- react脚手架构建工程
- 软件开发设计文档模版
- cad字体安装_拿了CAD字体不知道怎么装?看过来
- android模拟器root权限获取,如何在Android模拟器上获得root访问权限?
- 【渝粤教育】21秋期末考试大学英语210262k2
- 两点天上来,爱情一线牵——Global Timing Debugger
- Spring Mvc时间格式参数,前后时间传参,单个字段的时间格式化问题
- playcanvas关于跨域的问题
- 解决:coursera视频加载不出来无法观看
- ubuntu中将usb串口设备名称固定
- 小学教师资格证考试的高分技巧
- 计算机虚拟空间怎么设置,虚拟内存怎么设置最好,教您电脑虚拟内存怎么设置最好...
- 在python代码中调用vba宏的四种方法
- LabVIEW关于TDMS和Binary存储速度