2011-06-30 92 views
0

我有代碼播放mp3文件的Java。Java中的音樂播放器?

,我遇到的問題是,

- >程序時使用斷點調試模式下運行的音頻輸出只是聽說過,但不是在運行模式。

可能的解決方法是什麼?爲了更好的理解,我附上了代碼。

FileInputStream mp3_file=new FileInputStream("xyz.mp3"); 
Player mp3=new Player(mp3_file); 
mp3.play(); 
System.out.println("Over"); 
+2

所以,當你確實是只要運行它會發生什麼?應用程序是否立即關閉?我懷疑'Player.play()'方法只是開始播放它,而不是阻塞直到曲目完成。 –

+0

經過一段時間,控制檯輸出爲「Over」,沒有音頻輸出... –

回答

0

我在我的項目中遇到了同樣的問題。我用於循環。它解決了我的問題。

FileInputStream mp3_file=new FileInputStream("xyz.mp3"); 
Player mp3=new Player(mp3_file); 
for(int i=0;i<=3; i++) 
    mp3.play(); 

System.out.println("Over"); 

但如果創建代碼的可執行的JAR文件並運行它,它工作正常.....;)

0

最有可能你的程序只是退出,因爲在main方法的代碼完成非常快。

我們不知道你的Player是什麼,但我認爲它是在與主線程不同的線程上播放音樂,所以只要你的代碼停止,它就可以正常工作。

main方法中,應該停止執行代碼。對於這一點,只是你可以使用讀取控制檯的東西:

import java.util.Scanner; 
... 
// here we will get input and program won't quit until we press Return 
new Scanner(System.in).readLine(); 

除此之外,你可以使用像

try{Thread.sleep(Long.MAX_VALUE);} catch(Exception e){} 

睡覺主線程和等待太多時間。

1

在音樂完成之前,您的程序可能已經結束。確保您的節目在音樂結束前不會結束。例如:

mp3.play(); 
System.out.println("Press Enter to stop"); 
System.in.read(); // wait until user presses Enter