播放记录

Java获取MP3音乐文件时长

博客一杯JAVA浓 2019年08月31日 00:47:57

   一:使用 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();  
    }  
}  

   三:java 中直接使用 AudioInputStream 类来操作音乐文件,获取时长,实例如下:、

 

import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
public class AudioLength {
    public static void main(String[] args) throws LineUnavailableException,
            UnsupportedAudioFileException, IOException {
        File file = new File("d:/test.wav");
        Clip clip = AudioSystem.getClip();
        AudioInputStream ais = AudioSystem.getAudioInputStream(file);
        clip.open(ais);
        System.out.println( clip.getMicrosecondLength() / 1000000D + " s" );//获取音频文件时长
    }
}

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

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


转载:https://www.teenshare.club/java%e8%8e%b7%e5%8f%96mp3%e9%9f%b3%e4%b9%90%e6%96%87%e4%bb%b6%e6%97%b6%e9%95%bf.html

© 2018 www.qingketang.net 鄂ICP备18027844号-1

武汉快勤科技有限公司 13554402156 武汉市东湖新技术开发区关山二路特一号国际企业中心6幢4层7号

微信登录

扫码关注,全站教程免费播放

发表评论 X

登录成功
开通VIP

订单金额:

支付金额:

支付方式: