java 显示视频时间--玩的
1.显示视频时间
package view.time; import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.MultimediaInfo; import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; public class ViewTimeGUI {
private Frame f;
private Button b;
private Button btn_all;
private Button btn_export;
private TextField tf;
private Label l;
private TextArea ta; public void ViewGui(){
init();
} private void init() {
// TODO Auto-generated method stub
f=new Frame("显示文件夹下所有视频时间及路径 jdk-1.7");
f.setBounds(300, 200, 795, 275);
f.setBackground(Color.lightGray);
f.setLayout(new FlowLayout()); l=new Label("文件夹路径:");
tf=new TextField(50);
tf.setText("C:/Users/Administrator/Desktop/sp/mp4");
b=new Button("查看flv格式视频");
btn_all=new Button("查看所有视频时间不限制格式");
ta=new TextArea();
ta.setColumns(200);
ta.setEditable(false);
btn_export=new Button("导出信息到记事本"); f.add(l);
f.add(tf);
f.add(b);
f.add(btn_all);
f.add(ta);
f.add(btn_export); event(); f.setVisible(true);
System.out.println("Hello world!");
} private void event() {
// TODO Auto-generated method stub
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.exit(0);
} });
/*
tf.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
//验证键盘数字
int code=e.getKeyCode();
if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){
System.out.println(code+"....非法的输入");
e.consume(); //不执行加入文本框.
} } });
*/ b.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//System.out.println("actionPerformed 活动一次");
}
});
//查看按钮操作
b.addMouseListener(new MouseAdapter() {
private int count=0;
private int clickCount=1;
/*
//鼠标放在按钮上事件
public void mouseEntered(MouseEvent e){
System.out.println("鼠标进入到改组件"+count++);
}
*/ public void mouseClicked(MouseEvent e){ if(e.getClickCount()==2){
System.out.println("双击动作");
}else
{
String fileName=tf.getText().trim();
//判断文本框不能为空
if(fileName!=null&&fileName.length()>0)
{
File file =new File(fileName);
//文件夹不存在或不是文件夹目录
if (!file .exists() && !file .isDirectory())
{
//System.out.println("文件夹路径不存在或不是文件夹目录");
ta.append("文件夹路径不存在或不是文件夹目录!\r\n");
}else{
ta.setText("");
System.out.println("file+name"+fileName);
// String fileName="C:/Users/Administrator/Desktop/sp/mp4";
File f=new File(fileName);
print(f,ta);
System.out.println("点击动作"+clickCount++);
}
}else
{
ta.append("\r\n请填写文件路径!!\r\n");
}
} } });
btn_all.addMouseListener(new MouseAdapter(){
private int count=0;
private int clickCount=1;
/*
//鼠标放在按钮上事件
public void mouseEntered(MouseEvent e){
System.out.println("鼠标进入到改组件"+count++);
}
*/ public void mouseClicked(MouseEvent e){ if(e.getClickCount()==2){
System.out.println("双击动作");
}else
{
String fileName=tf.getText().trim();
//判断文本框不能为空
if(fileName!=null&&fileName.length()>0)
{
File file =new File(fileName);
//文件夹不存在或不是文件夹目录
if (!file .exists() && !file .isDirectory())
{
//System.out.println("文件夹路径不存在或不是文件夹目录");
ta.append("文件夹路径不存在或不是文件夹目录!\r\n");
}else{
ta.setText("");
System.out.println("file+name"+fileName);
// String fileName="C:/Users/Administrator/Desktop/sp/mp4";
File f=new File(fileName);
printAll(f,ta);
System.out.println("点击动作"+clickCount++);
}
}else
{
ta.append("\r\n请填写文件路径!!\r\n");
}
} }
});
//导出到记事本
btn_export.addMouseListener(new MouseAdapter() {
private int count=0;
private int clickCount=1;
/*
//鼠标放在按钮上事件
public void mouseEntered(MouseEvent e){
System.out.println("鼠标进入到改组件"+count++);
}
*/ public void mouseClicked(MouseEvent e){ if(e.getClickCount()==2){
System.out.println("双击动作");
}else
{
//文件路径
String filepath=null;
//ta文本框信息
String unamemessage=ta.getText().trim();
System.out.println("unamemessage:"+unamemessage);
// String fileName="C:/Users/Administrator/Desktop/sp/mp4";
//File f=new File();
//获取磁盘名称
List<String> list=getDiskName();
for(String str:list){
if(str.equals("D:\\")){
//有d盘的话 写入到d盘
String filename="Result.txt";
/**写入到记事本中*/
try {
filepath=str+filename;
BufferedWriter writer = new BufferedWriter(new FileWriter(new File(filepath), true));
writer.write(unamemessage);
// writer.write("文件名称:"+source.getName()+"\r\n");
writer.close();
} catch (IOException es) {
// TODO Auto-generated catch block
es.printStackTrace();
}
}else
{
System.out.println("没有d盘!");
}
}
//追加信息
ta.append("\r\n\r\n文件写入到了::"+filepath+"\r\n\r\n");
// System.out.println("点击动作"+clickCount++);
} } }); /*
//添加 键盘事件
b.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e){
System.out.println(e.getKeyChar()+"..."+e.getKeyCode());
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
//enter 就退出
/*if(e.getKeyCode()==KeyEvent.VK_ENTER)
System.
exit(0);*/ /*
//ctrl + Enter 发送消息
if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER){
System.out.println("我要发送消息!");
} } }); */ } /*
//因为接口WindowLinstener中的所有方法都被子类 WindowAdapter实现了,.
//并且覆盖了其中的所有方法,那么我们只能继承 WindowAdapter 覆盖我们的方法即可
class MyWin extends WindowAdapter{ @Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
//System.out.println("Window closing"+e.toString());
System.out.println("我关了");
System.exit(0);
}
@Override
public void windowActivated(WindowEvent e) {
//每次获得焦点 就会触发
System.out.println("我活了");
//super.windowActivated(e);
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("我开了");
//super.windowOpened(e);
}
}
*/
/**
* 获取磁盘名称
* */
public List<String> getDiskName(){
List<String> list=new ArrayList<String>();
File [] root = File.listRoots();
for(File file : root)
{
//获取到的信息添加到list
list.add(file.getAbsolutePath());
System.out.println(file.getAbsolutePath()); }
return list;
}
/**递归查找所有文件
* flv
* */
public static void print(File f,TextArea ta){
String timeflvstr=null;
if(f!=null){
if(f.isDirectory()){
File[] fileArray=f.listFiles();
if(fileArray!=null){
for (int i = 0; i < fileArray.length; i++) {
//递归调用
print(fileArray[i],ta);
}
} }
else{
//处理mp4视频文件 只读取flv视频时间
if(f.getName().indexOf(".flv")!=-1){
//处理mp4
String timeflv=getVideoTime(f.getPath());
//System.out.println("name:"+f.getName()+"文件:"+f.getPath());
//显示和写入的信息
timeflvstr="时长为:"+timeflv;
//System.out.println("时长为:"+timeflv);
ta.append(timeflvstr);
ta.append("\r\n");
System.out.println(timeflvstr); }
//System.out.println(f);
}
} }
/**递归查找所有文件
* 所有视频
* */
public static void printAll(File f,TextArea ta){
String timeflvstr=null;
if(f!=null){
if(f.isDirectory()){
File[] fileArray=f.listFiles();
if(fileArray!=null){
for (int i = 0; i < fileArray.length; i++) {
//递归调用
printAll(fileArray[i],ta);
}
} }
else{
//获取所有视频
String timeflv=getVideoTime(f.getPath());
//System.out.println("name:"+f.getName()+"文件:"+f.getPath());
//显示和写入的信息
timeflvstr="时长为:"+timeflv;
//System.out.println("时长为:"+timeflv);
ta.append(timeflvstr);
ta.append("\r\n");
System.out.println(timeflvstr);
}
} }
/**获取单个文件视频时长*/
public static String getVideoTime(String filepaths){
File file=new File(filepaths);
String timegs = null;
Encoder encoder = new Encoder();
try {
MultimediaInfo m = encoder.getInfo(file);
long ls = m.getDuration()/1000;
// time = Double.parseDouble(new DecimalFormat("#.00").format(ls/(1000*60.0)));
long hh = ls/3600; //转为小时
long mm =ls%3600/60; // 转换为分钟
long ss=ls%60; //秒
timegs=hh+":"+mm+":"+ss+" filepath:"+file.getPath();
return timegs;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**获取整个文件夹下视频时长*/
public static void fileFolderSumTime(String filePath){
/**获取文件夹下的总时长*/
File source = new File(filePath);
Encoder encoder = new Encoder();
File[] file = source.listFiles();
long sum =0;
for (File file2: file) {
try {
MultimediaInfo m = encoder.getInfo(file2);
long ls = m.getDuration()/1000; //ls是获取到的秒数18
sum += ls;
} catch (Exception e) {
e.printStackTrace();
}
}
long hh = sum/3600; //转为小时
long mm =sum%3600/60; // 转换为分钟
long ss=sum%60; //秒
System.out.println("总时长为--:"+hh+"::"+mm+"::"+ss);
System.out.println("文件路径为:"+source.getPath());
//System.out.println("文件名称:"+source.getName());
/**写入到记事本中*/
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(new File("d:\\Result.txt"), true));
writer.write("总时长为--:"+hh+"::"+mm+"::"+ss+"\r\n");
writer.write("文件路径为:"+source.getPath()+"\r\n");
// writer.write("文件名称:"+source.getName()+"\r\n");
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } //获取文件时长,备用
// TODO Auto-generated method stub
//File file=new File("C:/Users/Administrator/Desktop/sp/012 - Unity3D界面-Scene视图(3).mp4");
/* File source = new File("E:\\测试视频\\R41.avi");
Encoder encoder = new Encoder();
try {
MultimediaInfo m = encoder.getInfo(source);
long ls = m.getDuration();
System.out.println(s/1000+"秒!");
} catch (Exception e) {
e.printStackTrace();
}
*/ }
java 显示视频时间--玩的的更多相关文章
- java 获取视频时间
//先将视频保存到项目生成临时文件,获取时长后删除临时文件 // 使用fastdfs进行文件上传 @RequestMapping("/uploadVideoToFast") @Re ...
- ASP.NET如何显示农历时间
ASP.NET如何显示农历时间 CS部分代码如下: 代码如下: public string ChineseTimeNow = ""; public string ForignTi ...
- Linux显示以时间降序显示文件
Linux显示以时间降序显示文件 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ls -lrt 总用量 56 -rw-r--r-- 1 youhaidong ...
- 前端开发自学之JavaScript——显示当前时间
<html> <head> <title>JavaScript</title> <script language="javascript ...
- OpenCV: imshow后不加waitkey无法显示视频
OpenCV显示视频帧时出现一个问题,就是imshow之后若是不加waitkey则无法显示,找了很久也没找到原因. 只是发现也有人发现这个问题: cvWaitKey(x) / cv::waitKe ...
- Java最重要的21个技术点和知识点之JAVA多线程、时间处理、数据格式
(四)Java最重要的21个技术点和知识点之JAVA多线程.时间处理.数据格式 写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能 ...
- ffmpeg显示视频
项目最近需要实现播放视频功能,这个在上家公司就做过.虽然跟之前的场景不一样,有以前的功底还是很快可以解决,事实也确实如此.在使用DShow处理完视频分割与合并后,继续使用DShow显示视频,很快即完成 ...
- java 实现视频转换通用工具类:视频截图-Ffmpeg(四)
java 实现视频转换通用工具类:获取视频元数据信息(一) java 实现视频转换通用工具类:视频相互转换-总方法及Mencoder(二) java 实现视频转换通用工具类:视频相互转换-Ffmpeg ...
- java 实现视频转换通用工具类:视频相互转换-Ffmpeg(三)
java 实现视频转换通用工具类:获取视频元数据信息(一) java 实现视频转换通用工具类:视频相互转换-总方法及Mencoder(二) 这节主要是ffmpeg的相关方法封装,在实际调用中主要使用f ...
随机推荐
- VBA 开发学习--基础语法
MsgBox "开始学习VBA" '提示框 Dim str As String '声明str变量是string类型 Let str = "一起来看流星雨" '给 ...
- CTabCtrl - 如何使用TabCtrl控件
CTabCtrl - 如何使用TabCtrl控件 建立一个基于对话框的MFC应用程序TabCtrlTest Step 1:在资源视图中,新建对话框资源,资源ID:IDD_TabCtrlExample_ ...
- windows平台下杀死指定端口的进程(转载)
在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 协议 本地地址 外部地址 ...
- SGU 248. Integer Linear Programming( 背包dp )
看了半天...发现就是个背包...然后就不打算敲了. 看了一眼forum..顿时吓傻..其他人用了gcd啊什么的各种奇怪的东西..然后还是敲了个背包结果就AC了= =既然写了代码就扔上来吧... -- ...
- C/C++中使用的正则表达式库
正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 正则引擎主要可以分 ...
- 获取多个汉字首字母(php)
<?php function getfirstchar($s0){ $fchar = ord($s0{0}); if($fchar >= ord("A") and $f ...
- VirtualBox 更改主机和虚拟机之间的鼠标切换热键
VirtualBox 主机和虚拟机之间的鼠标切换热键 是 Right Ctrl.一般用惯VM Ware的都不太习惯,那么怎么改变VirtualBox鼠标切换热键呢? 1.点击菜单栏的 管理--&g ...
- python初探-数据类型
数据类型 可以使用BIF type()来查看对象的类型 数字 int float long 布尔(bool) True 机内表示1,机器识别非0 False 机内表示0,机器识别0 空值 None 字 ...
- Ubuntu 12.04 LTS下logomaker的安装
学校嵌入式课程实验,本地装的时候遇到了一系列问题,因为基本不会linux所以到处搜解决方法,中间还走了不少弯路,作个笔记. 1.解压安装倒是没什么问题,运行时提示找不到共享库 logomaker: e ...
- 类比的方法学习Performance_schema
引用自:http://www.javacoder.cn/?p=332 MySQL在5.6版本中包含了一个强大的特性——performance-schema,合理的使用这个数据库中的表,能为我们解决一些 ...