java - 如何获取音频文件的持续时间?

标签 java audio javasound

我想以秒为单位获取音频文件的持续时间(总时间)。音频文件可以是任何格式 I.E. (.mp3、.wav、.wma 等)。

 try {
    File file = new File("C:/Users/Administrator/AppData/Local/Temp/" + 
        "01 - Ab Tere Bin Jee Lenge Hum-(MyMp3Singer.com).mp3");
    AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
    AudioFormat format = audioInputStream.getFormat();
    long frames = audioInputStream.getFrameLength();
    double durationInSeconds = (frames + 0.0) / format.getFrameRate();
    System.out.println("duration in seconds"+durationInSeconds);
    AudioFileFormat audioFileFormat = AudioSystem.getAudioFileFormat(file);
    Map<String, Object> properties = audioFileFormat.properties();
    System.out.println("properties"+properties.size()+"empy::"+properties.isEmpty());
    for(String key: properties.keySet()){
        System.out.println(key  +" :: "+ properties.get(key).toString());
    }
} catch (Exception e) {
    System.out.println("Exception:::::" + e.getMessage());
}

我已经尝试使用上面的代码来做到这一点,但它给出了:

Exception:::::could not get audio input stream from input file

最佳答案

您可能缺少 MP3 编解码器。您可能想尝试 Tritonus: Open Source Java Sound .

同时检查相关线程:MP3 playback using Java Sound and Sun MP3 plugin

关于java - 如何获取音频文件的持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30183642/

相关文章:

java - 质因数分解计算器中的 for 循环显示合数并且循环不会重新启动

java - 使复选框仅在sql中对应5列

angularjs - ReferenceError:在Ionic App中未定义媒体

java - 找不到wav文件中2个声帧之间的差异的问题

java - 如何使用 jOOQ 在 PostGIS 中选择多边形内的点?

java - Spring-Java配置@Bean参数

javascript - <audio> 元素上的 onclick 事件

javascript - 单击SVG元素时,如何暂停/停止音频播放?

java - 使用 Swing 播放音频 - 我的代码线程安全吗?

java - 播放整个音频剪辑时遇到问题