2011-04-15 64 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添加到應用程序的運行時類路徑中。