Java I/O mp3 文件读取

标签 java file io

我想阅读 mp3 文件的详细信息,例如持续时间、比特率、艺术家等。 我可以通过阅读以下某些行来找到一些信息:

File f=fc.getSelectedFile();
FileInputStream inp=null; 
  byte[] buffer=new byte[128];    
     inp= new FileInputStream(f)
     inp.skip(f.length()-128);
     inp.read(buffer);      

    }
    String str=new String(buffer);       
    tf.setText(str);   

我想要清楚地获取所有详细信息。我怎样才能做到这一点?

最佳答案

Get duration Using MP3SPI:

private static void getDurationWithMp3Spi(File file) throws UnsupportedAudioFileException, IOException {

AudioFileFormat fileFormat = AudioSystem.getAudioFileFormat(file);
if (fileFormat instanceof TAudioFileFormat) {
    Map<?, ?> properties = ((TAudioFileFormat) fileFormat).properties();
    String key = "duration";
    Long microseconds = (Long) properties.get(key);
    int mili = (int) (microseconds / 1000);
    int sec = (mili / 1000) % 60;
    int min = (mili / 1000) / 60;
    System.out.println("time = " + min + ":" + sec);
} else {
    throw new UnsupportedAudioFileException();
}

关于Java I/O mp3 文件读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339941/

相关文章:

java - BufferedWriter:在文件关闭之前写入文件

java - 计算txt文件java文件io中的行数

java - 当两个 vector 的元素范围不同时,如何计算两个 vector 的余弦相似度

java - Java 枚举是否在 Android 运行时分配堆内存?

java - 当参数字符串为 null 时,int compareTo() 应该返回什么?

c# - 在线程中复制多个文件

iOS 应用程序内存不足处理

写入文件时转储​​ C 程序核心

image - 上传前调整图像大小

Java Android - 如何根据键对 JSONArray 进行排序