我有代碼播放mp3文件的Java。Java中的音樂播放器?
,我遇到的問題是,
- >程序時使用斷點調試模式下運行的音頻輸出只是聽說過,但不是在運行模式。
可能的解決方法是什麼?爲了更好的理解,我附上了代碼。
FileInputStream mp3_file=new FileInputStream("xyz.mp3");
Player mp3=new Player(mp3_file);
mp3.play();
System.out.println("Over");
我有代碼播放mp3文件的Java。Java中的音樂播放器?
,我遇到的問題是,
- >程序時使用斷點調試模式下運行的音頻輸出只是聽說過,但不是在運行模式。
可能的解決方法是什麼?爲了更好的理解,我附上了代碼。
FileInputStream mp3_file=new FileInputStream("xyz.mp3");
Player mp3=new Player(mp3_file);
mp3.play();
System.out.println("Over");
我在我的項目中遇到了同樣的問題。我用於循環。它解決了我的問題。
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文件並運行它,它工作正常.....;)
最有可能你的程序只是退出,因爲在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){}
睡覺主線程和等待太多時間。
在音樂完成之前,您的程序可能已經結束。確保您的節目在音樂結束前不會結束。例如:
mp3.play();
System.out.println("Press Enter to stop");
System.in.read(); // wait until user presses Enter
所以,當你確實是只要運行它會發生什麼?應用程序是否立即關閉?我懷疑'Player.play()'方法只是開始播放它,而不是阻塞直到曲目完成。 –
經過一段時間,控制檯輸出爲「Over」,沒有音頻輸出... –