2011-04-15 36 views
3

我目前正在开发一个需要播放背景音乐的项目。我设法做到这一点使用Jlayer库和一段代码发现here在java中暂停mp3

但是,我需要添加一些更多的功能,如循环播放和暂停。
循环功能相当容易实现,但我花了数小时寻找一种方法来暂停和恢复mp3文件。

我的猜测是在Player类中使用play(int frames)方法,使用getPosition()方法和mp3总帧数,但我无法设法获得总帧数。

任何线索?我只需要这种暂停/恢复方法,所以如果你知道一种不同于此的方式,请随时发帖

我也一直在尝试一些BasicPlayer库的东西(链接here),但我总是最终得到尝试读取任何mp3文件时发生javax.sound.sampled.UnsupportedAudioFileException

回答

4

您无法使用Default Player实现执行此操作。

您需要实现流类并读取那些DataSourceLine类的数据。 这是一项艰苦的工作,但它是可能的。我在2年前做过,如果我找到我的代码,我将它发布给你。

+0

好的谢谢你的信息!你知道这是否会更容易做到使用ogg文件和JOrbis库?如果你发现你的旧代码,我会很高兴看到它 – Aserre 2011-04-15 19:13:26

+0

这项工作不是MP3或OGG特定的,你可以编写一个播放任何文件的播放器。另外,您可以从JavaZOOM上的开源播放器中检查代码。 PS:如果我的答案是有用的,请投票。这是StackOverflow的工作原理。 – 2011-04-15 19:17:53

+0

我检查了开放源码播放器,但我最终得到异常。尽管如此,我会挖掘它。 关于投票,我不能因为我的名声太低 – Aserre 2011-04-15 19:34:08

2

标准Java Sound提供了问题中提到的所有功能。要向Java Sound添加MP3(解码)支持,请将(JMF的)mp3plugin.jar添加到应用程序的运行时类路径中。