Ich habe einen Thread erstellt, der einen Song aus einer implementierten Runnable-Klasse (Soundtrack) spielt, ich möchte ihn stoppen, indem ich meine Taste drücke (jMenuItem1ActionPerformed). Ich googelte es & versuchte viele Möglichkeiten zu stoppen, aber fehlgeschlagen Ich denke, in meinem Fall gibt es einen anderen Weg, das zu tun. Der folgende Code unten:Wie man einen Thread durch Drücken einer Java Swing-Taste stoppt?
public static class Soundtrack implements Runnable {
@Override
public void run() {
try{
File file = new File("SF.mp3");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
try{
Player player = new Player(bis);
player.play();
}catch(JavaLayerException ex){}
}catch(IOException e){}
}
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
public static void main(String args[]) {
Thread background = new Thread(new Soundtrack());
background.start();
}
Können Sie player.stop() aufrufen oder so etwas? – jwils
Nein, ich kann nicht, aber es gibt player.close(), ich kann es nicht nennen wie Player player = new Player(); player.close(); Ich musste alle try und catch-Befehle setzen, obwohl das immer noch nicht funktioniert, ich denke, dass Player Klasse nicht von Java ist, ursprünglich habe ich eine neue Bibliothek JLayer 1.0.1 von http://www.javazoom.net/index.shtml hinzugefügt Um mp3-Dateien abzuspielen, sind dies die Befehle, die ich im Player einstellen kann .: close(); gleich (Objekt o); getClass(); getPosition(); Hash-Code(); ist komplett(); benachrichtigen(); notifyAll(); abspielen(); spielen (int i); toString(); warten(); warte (lang l); warte (lang l, int i). – Rafa