我想獲得音頻文件的持續時間(總時間),以秒爲單位。音頻文件可以是任何格式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
http://stackoverflow.com/questions/3009908/how-do-i-get-a-sound-files-total-time-in-java –