[英]How to know when a song is finished playing?
我正在開發一個可以播放歌曲的小型聲音播放器。 我正在使用TinySound庫https://github.com/finnkuusisto/TinySound 。 從API可以看到,它確實帶有一個名為.done()的方法,可以告訴我音樂對象是否已完成播放,但是如何在播放時進行測試呢?
我目前已經創建了一個帶有按鈕的JFrame和一個顯示歌曲的Jlist,但是我知道,如果我嘗試某種while循環來收聽歌曲,或者歌曲還沒有結束,我將無法使用其他按鈕,例如stop ,暫停等
我在想這條線的某個地方(偽代碼):
while(theSong.playing()){
if(theSong.done()){
playNext();
}
}
問題是,進入while循環時,我無法在程序中使用任何其他功能。 如果有人想看一些示例代碼,請告訴我!
辛德雷M
運行此while
同一個線程的圖形用戶界面上將會使界面卡死。 您可以使用SwingUtilities invokeAndWait方法實現所需的功能:
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
while(theSong.playing()) {
if(theSong.done()) {
playNext();
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.