kostenloser Webspace werbefrei: lima-city


Java Mp3 player

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    knoi

    knoi hat kostenlosen Webspace.

    Hej Leude,.
    ich bin grad dabei nen Mp3 play zu schreiben,.
    ich habs soweit, dass ich den song abspielen kann,.
    nur leider reagiert die oberfläche nicht mehr solange der Song läuft,.
    ich hoffe mir kann vllt jemand helfen

    Hier mein Code:

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import javazoom.jl.decoder.JavaLayerException;
    import javazoom.jl.player.advanced.AdvancedPlayer;
    import javazoom.jl.player.AudioDevice;
    
    
    public class mp3{
    	
    	AdvancedPlayer p;
    	String filename;
      
    	public mp3test(String filename){
    		this.filename=filename;
    	}	
    	public void stop(){
    		p.stop();
    	}
    	public void play(){
    		
    		try{	
    			FileInputStream in = new FileInputStream(filename);            
    			p = new AdvancedPlayer(in);
    			p.play();				
    		}
    		catch (JavaLayerException jle) { System.err.println ("Error: " + jle); }
    		catch (FileNotFoundException fnf) { System.err.println ("Error: " + fnf); }
    	}
    
    	 
    }

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Moin,

    das passiert weil Dein aktueller Thread auch für die GUI zuständig ist.
    Das bedeutet also, dass wenn er durch das Abspielen eines Songs ausgelastet ist,
    die GUI eingefroren wird und zwar so lange, bis er wieder freigegeben wird.

    Die Lösung liegt in der sogenannten Nebenläufigkeit, sprich die Auslagerung des Abspielens in einen eigenen Thread.

    Hier ein Link zum besseren Verständnis:
    http://openbook.galileocomputing.de/javainsel8/javainsel_11_001.htm

    Gruß,
    Pawnee
  4. Autor dieses Themas

    knoi

    knoi hat kostenlosen Webspace.

    Dankeschön,.ich habe das Abspielen jetzt in einen Thread gepackt,.

    Aber es funktioniert nur in der run() funktion,.
    heißt das also, dass ich den Thread nur starten und stoppen kann?
  5. Moin,

    es ist richtig, dass alles im Thread über die run-Methode abgewickelt wird.

    Du kannst ja von der Thread-Klasse ableiten und etwas eigenes kreieren.
    Und ja, starten und stoppen des Threads ist ja der Sinn der Sache.
    Wenn etwas verarbeitet wird soll er ja laufen, wenn nichts gebraucht, wird er gestoppt - wozu unnötig Ressourcen verschwenden?

    Aber ... alles was Du zur Ausführung benötigst, muss eben irgendwo in der run-Methode auftauchen.

    Gruß,
    Pawnee
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!