SwingWorker mit mp3 Datei?

Status
Nicht offen für weitere Antworten.

Titanpharao

Bekanntes Mitglied
Wieso zeigt der mir die 10 nicht an? Ich habe den abspielpart der MP3 Datei doch in einen seperaten Thread gepackt. Müste ich so nicht im Programm weiter arbeiten können, und er spiel die Sound Datei ab? Wie kann ich dann eigentlich die mp3 Datei vorzeitig stoppen, und ein neues musikstück abspielen?
bgm.close();
Dann neues machen?


Code:
package sound;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javax.swing.SwingWorker;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;

public class Musictest{
      
      public static void main(String[]args){
    	  Music bgm=new Music();
    	  bgm.run();
    	  int x=0;
    	  while(x<10){
    		  x++;
    	  }
    	  System.out.println(x);
      }  
}

class Music extends SwingWorker<Void, Void> {
	  @Override
    public Void doInBackground() {
        try{
            FileInputStream in = new FileInputStream("resc/test.mp3");
            Player p = new Player(in);
            p.play();
           }catch (JavaLayerException jle) {
           System.err.println ("Error: " + jle); 
           }
           catch (FileNotFoundException fnf) {
           System.err.println ("Error: " + fnf); 
           }
        return null;
    }
    @Override
	public void done() {
    }
}
 
ok kann gelöscht werden...
bgm.execute();
nicht .run();

Ok jetzt geht zwar laufen und abspielen, aber wie "zerstöre" ich denn Worker? Also das lied stoppen?
 
hatte ich auch....close();
Nur irgendwie bricht der nicht wirklich ab...habe das sogar in Konstruktor reingeschrieben--> es dürfte gar kein Sound kommen. ist aber immer noch :bahnhof:
 
class Music extends SwingWorker<Void, Void> {
@Override
public Player p = null

public Void doInBackground() {
try{
FileInputStream in = new FileInputStream("resc/test.mp3");
p = new Player(in);
p.play();
}catch (JavaLayerException jle) {
System.err.println ("Error: " + jle);
}
catch (FileNotFoundException fnf) {
System.err.println ("Error: " + fnf);
}
return null;
}
@Override
public void done() {
}
}

wenn du jetzt bgm.p.close() machst müsste der doch beenden, oder?
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben