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){}
}

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

4

1 回答 1

2

您可以向剪辑添加LineListener并在LineEvent.Type Stop触发时重新启用按钮。

您可以在此处找到有关 Line 接口的更多信息。代码可能如下所示:

LineListener listener = new LineListener() {
        public void update(LineEvent event) {
        if (event.getType() == Type.STOP) {
          btnPlay.setEnabled(true);
        }        
        }
    };
clip.addLineListener(listener);
于 2013-06-25T17:59:00.947 回答