我正在制作一个演示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){}
}
你能给我一个解决方案吗?非常感谢你!
答案 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);