jave 获取音视频文件的大小、以及播放时长

jave 获取音视频文件的大小、以及播放时长

首先引入jave-1.0.2.jar,

写了个demo 仅供参考

package com.readVideo.test;


public class VideoName {

	private int id;
	private String name;
	private String time;
	private String size;
	private String leaf;
	private String url;
	private String brief;
	private int VIDEO_DETAIL_ID;

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTime() {
		return time;
	}
	public void setTime(String time) {
		this.time = time;
	}
	public String getSize() {
		return size;
	}
	public void setSize(String size) {
		this.size = size;
	}
	public String getLeaf() {
		return leaf;
	}
	public void setLeaf(String leaf) {
		this.leaf = leaf;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getBrief() {
		return brief;
	}
	public void setBrief(String brief) {
		this.brief = brief;
	}
	public int getVIDEO_DETAIL_ID() {
		return VIDEO_DETAIL_ID;
	}
	public void setVIDEO_DETAIL_ID(int vIDEO_DETAIL_ID) {
		VIDEO_DETAIL_ID = vIDEO_DETAIL_ID;
	}
	
	
}

 

package com.readVideo.test;

import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.MultimediaInfo;
import java.io.File;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

public class ReadVideoMessages {

	/**
	 * 得到视频的大小
	 * 
	 * @param f
	 *            文件
	 * @return 视频的大小
	 */
	public static String getFileSize(File f) {
		// 保留两位小数
		DecimalFormat df = new DecimalFormat(".##");
		// 得到视频的长度
		Long long1 = f.length();
		String size = "";
		long G = 1024 * 1024 * 1024;
		long M = 1024 * 1024;
		long K = 1024;
		// 视频大小超过G、超过M不超过G、超过K不超过M
		if (long1 / G >= 1) {
			size = df.format((double) long1 / G) + "G";
		} else if (long1 / M >= 1) {
			size = df.format((double) long1 / M) + "M";
		} else if (long1 / K >= 1) {
			size = df.format((double) long1 / K) + "K";
		} else {
			size = long1 + "B";
		}
		// System.out.println(time);
		return size;

	}

	/**
	 * 得到视频的长度
	 * 
	 * @param f
	 *            文件
	 * @return 视频的长度
	 */
	public static String getVideoTime(File f) {
		String time = "";
		//新建编码器对象
		Encoder encoder = new Encoder();
		try {
			//得到多媒体视频的信息
			MultimediaInfo m = encoder.getInfo(f);
			//得到毫秒级别的多媒体是视频长度
			long ls = m.getDuration();
			//转换为分秒
			time = ls / 60000 + "分" + (ls - (ls / 60000 * 60000)) / 1000 + "秒";
		} catch (Exception e) {
			e.printStackTrace();
		}

		return time;

	}

	// 显示目录的方法
	/**
	 * 得到视频所有的信息
	 * 
	 * @param file
	 *            文件夹 or 文件
	 * @return 视频的信息
	 */
	public static List<VideoName> getAllMessage(File file) {
		List<VideoName> videoNames = new ArrayList<VideoName>();
		// System.out.println( file.getAbsolutePath());
		String time = "";
		String size = "";
		// 判断传入对象是否为一个文件夹对象
		if (!file.isDirectory()) {
			System.out.println("你输入的不是一个文件夹,请检查路径是否有误!!");
		} else {
			File[] f = file.listFiles();
			for (int i = 0; i < f.length; i++) {
				// 判断文件列表中的对象是否为文件夹对象,如果是则执行tree递归,直到把此文件夹中所有文件输出为止
				if (f[i].isDirectory()) {
					System.out.println(f[i].getName() + "\tttdir");
					// getAllMessage(f[i]);
				} else {
					time = getVideoTime(f[i]);
					if (time.equals("")) {
						time = "未知";
					}
					size = getFileSize(f[i]);
					VideoName videoName = new VideoName();
					int j = f[i].getName().indexOf("-", 1);
					videoName.setName(f[i].getName().substring(0, j));
					videoName.setSize(size);
					videoName.setTime(time);
					videoName.setBrief(f[i].getName().substring(j + 1,
							f[i].getName().length()));
					videoName.setUrl("F:/Resource/video/硬件/AltiumDesigner/"
							+ f[i].getName());
					videoNames.add(videoName);
					System.out.println(time
							+ "---"
							+ size
							+ "---"
							+ f[i].getName().substring(0, j)
							+ "---"
							+ f[i].getName().substring(j + 1,
									f[i].getName().length()) + "---"
							+ "F:/Resource/video/硬件/AltiumDesigner/"
							+ f[i].getName());
				}
			}
		}
		return videoNames;

	}

	public static void main(String[] args) {
		File f = new File("F:\\Resource\\video\\软件\\LabView");
		List<VideoName> videoMessages = getAllMessage(f);
		System.out.println(videoMessages.size());
	}

}

 

posted @ 2017-07-03 14:38 赤子之心_timefast 阅读( ...) 评论( ...) 编辑 收藏
125分50秒---162.81M---LabView01---第10章数据的显示.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView01-第10章数据的显示.wmv 92分2秒---143.46M---LabView02---第11章文件的IO及保存.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView02-第11章文件的IO及保存.wmv 37分22秒---58.09M---LabView03---第12章LabVIEW的通信.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView03-第12章LabVIEW的通信.wmv 9分58秒---21.2M---LabView04---第13章LabVIEW与其它软件的连接.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView04-第13章LabVIEW与其它软件的连接.wmv 4分45秒---9.99M---LabView05---第14章LabVIEW中子VI的设置及调用.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView05-第14章LabVIEW中子VI的设置及调用.wmv 34分30秒---61.03M---LabView06---第15章其它高级技巧.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView06-第15章其它高级技巧.wmv 9分41秒---11.37M---LabView07---第2章第一个LabVIEW例子.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView07-第2章第一个LabVIEW例子.wmv 86分58秒---140.25M---LabView08---第3章基本元素.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView08-第3章基本元素.wmv 76分48秒---143.72M---LabView09---第4章程序结构.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView09-第4章程序结构.wmv 5分46秒---14.67M---LabView10---第5章数据采集.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView10-第5章数据采集.wmv 12分50秒---18.35M---LabView11---第6章数据传输及电脑接口.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView11-第6章数据传输及电脑接口.wmv 59分57秒---87.83M---LabView12---第7章数据的分析及处理.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView12-第7章数据的分析及处理.wmv 42分4秒---61.02M---LabView13---第8章LabVIEW的信号调理.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView13-第8章LabVIEW的信号调理.wmv 132分19秒---178.86M---LabView14---第9章分析处理中数学计算.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView14-第9章分析处理中数学计算.wmv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值