播放音乐后自动启用按钮

时间:2013-06-25 16:20:14

标签: java

我正在制作一个演示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){}
}

你能给我一个解决方案吗?非常感谢你!

1 个答案:

答案 0 :(得分: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);