簡體   English   中英

如何知道歌曲何時播放完畢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM