项目中用到了视频解析的工具,简单的说一下,目前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真的是细节决定成败!)相关推荐

  1. Java XML解析工具类

    Java XML解析工具类 Java解析XML的方式有很多,这里不一一说明了,利用三方jar包,实现了一个XML工具类 本身是有个需求,讲三方公司的XML请求文件中的Response里的属性赋值成ja ...

  2. java 视频解析_ffmpeg解析视频的每一帧(java )

    前置条件:下载opencv的jar包导入.ffmpeg package test; import org.opencv.core.Core; import org.opencv.core.Mat; i ...

  3. Java中的BigDecimal类你真的了解吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:HikariCP www.jianshu.com/p/c81 ...

  4. MySQL查询多表定义实体类_自己设计一个 JAVA + MyBatis 解析实体类多表通用查询

    先来处理一下查询的字段和用到的表吧 //虽然我们使用的时候是实体,但最终还是要解析成sql的,那么我们需要想好解析成sql 时候所用到的东东,提前准备好 class TableEntity { Str ...

  5. 【java】解析JToolBar类的使用

    1.简介 在大部分的Look and Feels下,用户都可以把该工具条拖离原Window组件(除非floatable属性设置为false).为了能够正常的实现拖动效果,该类的实例被建议添加到Bord ...

  6. 抖音视频解析的工具类

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 一.一个解析抖音分析链接的工具类 import java.io.IOException; import java.util.HashM ...

  7. [Android开发] Json解析工具类,一个类搞定Json的解析

    一.简介 利用递归的方式反射解析到bean里面 二.详细代码 1. Json格式 例如服务器指定规定json格式为: {"code": "--" , // 返回 ...

  8. java 自定义json解析注解 复杂json解析 工具类

    java 自定义json解析注解 复杂json解析 工具类 目录 java 自定义json解析注解 复杂json解析 工具类 1.背景 2.需求-各式各样的json 一.一星难度json[json对象 ...

  9. java method field_java_解析Java中的Field类和Method类,Field类 Field类中定义了一些方 - phpStudy...

    解析Java中的Field类和Method类 Field类Field类中定义了一些方法,可以用来查询字段的类型以及设置或读取字段的值.将这些方法与继承而来的member方法结合在一起.就可以使我们能够 ...

最新文章

  1. Android 利用源码调试 详解TouchEvent 事件分发机制
  2. 黑客攻击发现:多个银行类APP存漏洞
  3. mysql long varchar2_long查询结果转换为varchar2类型
  4. C#LeetCode刷题之#705-设计哈希集合​​​​​​​(Design HashSet)
  5. python多维矩阵基础运算中的一点困惑
  6. 随想录(windows上cuda环境安装)
  7. react脚手架构建工程
  8. 软件开发设计文档模版
  9. cad字体安装_拿了CAD字体不知道怎么装?看过来
  10. android模拟器root权限获取,如何在Android模拟器上获得root访问权限?
  11. 【渝粤教育】21秋期末考试大学英语210262k2
  12. 两点天上来,爱情一线牵——Global Timing Debugger
  13. Spring Mvc时间格式参数,前后时间传参,单个字段的时间格式化问题
  14. playcanvas关于跨域的问题
  15. 解决:coursera视频加载不出来无法观看
  16. ubuntu中将usb串口设备名称固定
  17. 小学教师资格证考试的高分技巧
  18. 计算机虚拟空间怎么设置,虚拟内存怎么设置最好,教您电脑虚拟内存怎么设置最好...
  19. 在python代码中调用vba宏的四种方法
  20. LabVIEW关于TDMS和Binary存储速度

热门文章

  1. unity内嵌浏览器——UniWebView插件
  2. 黑群晖折腾记(一)-完善系统功能
  3. 新手如何使用JavaScript读取json文件 v2.0
  4. 微软机器人开发套件教程翻译
  5. 电商项目 全部操作流程
  6. Windows程序打包利器InstallShield 2019 R3使用教程
  7. while与scanf
  8. 目前为止感觉最准的划线指标 不加密不含未来
  9. 【插件】浏览器广告拦截插件| 浏览器搜索广告横飞怎么办
  10. linux svn web管理,CentOS 6.x 部署Subversion 集成 SvnAdmin Web管理界面