我制作了一个简单的程序让java播放一些.mp3文件。 使用JLayer来做到这一点。 问题是按下按钮后我无法中断播放器。
我的代码在actionperformed中执行:
class MyThread extends Thread {
@Override
public void run() {
try {
File file = new File(source);
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
try {
Thread.sleep(1);
try {
Player player = new Player(bis);
player.play();
} catch (JavaLayerException ex) {
}
} catch (InterruptedException e) {
System.out.println("Came");
}
} catch (IOException e) {
lab2.setText("error, is the pathway correct?");
}
}
}
MyThread mythread = new MyThread();
if (event.getSource() == input) {
source = input.getText();
source = source.replace("\\", "\\\\");
lab1.setText(source);
}
if (event.getSource() == but1) {
mythread.start();
}
if (event.getSource() == but2) {
but2.setLabel("stop");
mythread.interrupt();
but2.setLabel("stopped");
}
}
}
当我添加mythread.interrupt();直接在中断工作后面,我的系统给了我"来了"输出。 但是,如果我使用名为输入的按钮,它将不起作用。
答案 0 :(得分:0)
似乎玩家类没有停止方法,但您可以尝试使用高级播放器:
http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/advanced/AdvancedPlayer.html
和stop()
方法。