我如何使用java找出mp3文件的持续时间/总播放时间?

发布于 2024-12-12 21:44:02 字数 109 浏览 0 评论 0原文

我正在用 Java 开发一个应用程序。其中一部分包括通过另一个应用程序播放 mp3 文件。我需要找到 mp3 文件的持续时间(总播放时间)。我该怎么做?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

澉约 2024-12-19 21:44:02

您可以使用 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/

You can do this very easily using 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());

That will print out the track length of the file at filePath. The logger line is to remove a lot of (probably) unwanted info/debugging logging from JAudioTagger. Besides this, JAudioTagger supports getting all sorts of metadata tags from different audio file types (MP3, MP4, WMA, FLAC, Ogg Vorbis), both from file-embedded tags. You can even get MusicBrainz info easily, but I haven't tried that yet. For more info:

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

You can get the jar files for it here:

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

长安忆 2024-12-19 21:44:02

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

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

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

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

For small .mp3 files you can use:

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

This will give a string containing the minute and second duration in it. eg: 316 for 3:16.

Note that This method is not suitable with larger files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文