2013-06-25 68 views
0

我正在製作播放WAV文件的演示,並堅持使用它。當我開始播放音樂時,我禁用了btnPlay。現在我希望音樂播放完畢後,必須自動啓用btnPlay。但我不能這樣做。我可以以微秒獲得文件持續時間,但我不知道下一步該怎麼做。這是代碼。播放音樂後自動啓用按鈕

public void playmusic(){ 
    try{ 
     btnClose.setEnabled(true); 
     btnShuffle.setEnabled(true); 
     btnRepeat.setEnabled(true); 
     btnPause.setEnabled(true); 
     btnStop.setEnabled(true); 
     btnPlay.setEnabled(false); 
     if(isPausing==false){ 
      AudioInputStream ais = AudioSystem.getAudioInputStream(f); 
      clip = AudioSystem.getClip(); 
      clip.open(ais); 
      clip.start(); 
     } 
     else{ 
      isPausing=false; 
      clip.start(); 
     } 
    } 
    catch(Exception ex){} 
} 

你能給我一個解決方案嗎?非常感謝你!

+3

Offtopic:'catch(Exception ex){}'最終會召喚龍和惡魔。 – m0skit0

回答

2

您可以將LineListener添加到剪輯,並在LineEvent.Type Stop觸發時重新啓用該按鈕。

您可以在線路接口here上找到更多信息。代碼可能看起來像這樣:

LineListener listener = new LineListener() { 
     public void update(LineEvent event) { 
     if (event.getType() == Type.STOP) { 
      btnPlay.setEnabled(true); 
     }   
     } 
    }; 
clip.addLineListener(listener); 
+0

非常感謝! :d –