Java获取MP3音乐文件时长

方法一:使用javasound api:

	public void method1() {
		File file = new File("C:\\music\\test2.mp3");
		long total = 0;
		try {
			AudioFileFormat aff = AudioSystem.getAudioFileFormat(file);
			Map props = aff.properties();
			if (props.containsKey("duration")) {
				total = (long) Math.round((((Long) props.get("duration")).longValue()) / 1000);
			}
			System.out.println(total / 1000);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

网上有些同志说这段代码无法运行,我猜应该是缺少了mp3的解码插件,下载地址为:http://www.javazoom.net/mp3spi/mp3spi.html

方法二:使用jaudiotagger.jar包实现,网上搜下就能找到,代码如下:

	public void method2() {
		File file = new File("C:\\music\\test2.mp3");
		try {
			MP3File f = (MP3File)AudioFileIO.read(file);
			MP3AudioHeader audioHeader = (MP3AudioHeader)f.getAudioHeader();
			System.out.println(audioHeader.getTrackLength());	
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

这两种方法都只能获得本地音频文件的音乐时长,如果是获取网络音乐的时长,地址:http://www.javastar.net/?post=50

源码下载地址:http://download.csdn.net/detail/jys1109/5871797

你可能感兴趣的:(编程语言)