4

I am developing an application in Java. Part of it includes playing an mp3 file via another application. I need to find the duration (total play time) of the mp3 file. How do I do that?

4

2 回答 2

7

您可以使用 JAudioTagger 轻松完成此操作:

Tag tag; 
java.util.logging.Logger.getLogger("org.jaudiotagger").setLevel(Level.OFF);
audioFile = AudioFileIO.read(new File(filePath));
System.out.println("Track length = " + audioFile.getAudioHeader().getTrackLength());

这将在 filePath 打印出文件的轨道长度。记录器行是从 JAudioTagger 中删除很多(可能)不需要的信息/调试日志记录。除此之外,JAudioTagger 还支持从不同的音频文件类型(MP3、MP4、WMA、FLAC、Ogg Vorbis)中获取各种元数据标签,两者都来自文件嵌入标签。您甚至可以轻松获取 MusicBrainz 信息,但我还没有尝试过。欲了解更多信息:

http://www.jthink.net/jaudiotagger/examples_read.jsp

你可以在这里获取它的 jar 文件:

http://download.java.net/maven/2/org/jaudiotagger/

于 2012-06-17T16:24:17.513 回答
0

对于小.mp3文件,您可以使用:

AudioFile audioFile = AudioFileIO.read(MyFileChooser.fileName);
int duration= audioFile.getAudioHeader().getTrackLength();
System.out.println(duration);

这将给出一个包含分钟和秒持续时间的字符串。例如:316对于3:16

请注意,此方法不适用于较大的文件。

于 2016-01-18T19:01:31.707 回答