tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von vfl_freak
  • 1 Beitrag von takidoso
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
1490
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dodlhuat dodlhuat ist offline Mitglied Bronze
    Registriert seit
    Apr 2007
    Beiträge
    40
    Ich hab ein kleines Programm geschrieben in dem per Button Klick eine mp3 Datei abgespielt werden soll.
    Habe das anfänglich mit jmf probiert und bin jetzt bei jlayer gelandet. Das funktioniert so weit auch ganz gut, aber macht folgendes Problem. In meinem Programm sind 5 Buttons die jeder eine andere Datei abspielen. Nur wenn ich eine starte, werden alle Buttons blockiert bis das File fertig abgespielt ist.
    Hier mal der Code des Players:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    import java.io.*;
     
    import javazoom.jl.player.*;
    import javazoom.jl.decoder.*;
     
        public class AudioPlayer {
            
            FileInputStream in = null;
            Player p = null;
     
            public AudioPlayer() {
                
            }
            
            void startPlayer() {
                if (p != null) {
                    p.close();
                }
                try {
                    p = new Player(in);
                    p.play();
                } catch (JavaLayerException jle) {
                    System.err.println ("Error: " + jle); 
                }
            }
            
            void changeFile(String dateiname) {
                try {
                    in = new FileInputStream(new File("audio", dateiname+".mp3"));
                } catch (FileNotFoundException fnf) {
                    System.err.println ("Error: " + fnf);
                }
            }
    }

    und jeder Button führt bei Klick folgendes aus:

    Code :
    1
    2
    
    ap.changeFile(datei);
    ap.startPlayer();

    Kann mir einer sagen wo da mein Fehler liegt...
    Danke schonmal...
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    interessanter wäre vermutlich der Codeteil wo Du "ap.startPlayer()" aufrufst ! !

    Kannst Du denn irgendwas anderes im Fenster mit den Button machen ? ?
    So aus dem Bauch heraus vermute ich mal, dass sich Dein Player wie ein modaler Dialog verhält

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    dodlhuat dodlhuat ist offline Mitglied Bronze
    Registriert seit
    Apr 2007
    Beiträge
    40
    Zitat Zitat von vfl_freak Beitrag anzeigen
    Moin,

    interessanter wäre vermutlich der Codeteil wo Du "ap.startPlayer()" aufrufst ! !

    Kannst Du denn irgendwas anderes im Fenster mit den Button machen ? ?
    So aus dem Bauch heraus vermute ich mal, dass sich Dein Player wie ein modaler Dialog verhält

    Gruß
    Klaus
    Ich hab einen ActionListener auf allen Buttons der beim Klick den Player startet:
    Code :
    1
    2
    3
    4
    5
    6
    
    button_1_Play.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent e) {
                        ap.changeFile(datei);
                                    ap.startPlayer();
                    }
                });

    Und das Fenster ist komplett blockiert, kann es nicht mal schließen solang das Audiofile läuft.

    Wie krieg ich das dann hin das die Buttons nicht blockiert werden? Habe vorher die Wiedergabe mittels dem jmf gelöst gehabt, da hats das Problem nicht gegeben, mir ist nur nicht klar was ich dieses mal anders gemacht habe.
     

  4. #4
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    also ich kenne diesen JLayer nicht, aber wie ich schon schrieb, klingt es ganz danach, dass er in einem modalen Modus geöffnet wird.

    Da wirst Du kaum eine Chance haben ... kannst theoretisch ja mal versuchen, ihn in einen neuen Frame Deines Progs einzubinden, falls das geht!

    Gruß
    Klaus
    dodlhuat bedankt sich. 
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  5. #5
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    Falls kein Dialog modaler Natur gestartet werden sollte, denke ich liegt es daran das die Musik im Event-Thread abgespielt wird. Lösung: lege es in einen anderen Thread.

    Um zu schauen in welchem Thread es liegt bemühe mal die Threadliste in einem debugger (z.B. den von Eclipse)
    dodlhuat bedankt sich. 

  6. #6
    dodlhuat dodlhuat ist offline Mitglied Bronze
    Registriert seit
    Apr 2007
    Beiträge
    40
    Zitat Zitat von takidoso Beitrag anzeigen
    Falls kein Dialog modaler Natur gestartet werden sollte, denke ich liegt es daran das die Musik im Event-Thread abgespielt wird. Lösung: lege es in einen anderen Thread.

    Um zu schauen in welchem Thread es liegt bemühe mal die Threadliste in einem debugger (z.B. den von Eclipse)
    Danke, habe es jetzt in einem anderen Thread, und jetzt passt alles!
     

  7. #7
    finarfin Tutorials.de Gastzugang
    Hi, ich habe grade das gleiche Problem, kenne mich aber mit java nicht so gut aus. Kannst du mir vielleicht beschreiben, wie man das in einem anderen thread startet?
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 11.01.11, 21:40
  2. JLayer spielt nur eine mp3-Datei ab
    Von Rodio im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 15.07.10, 12:48
  3. Antworten: 4
    Letzter Beitrag: 22.03.06, 20:50
  4. PROBLEM! Pinnacle 2 GB Begrenzung Windows 2000 DC 50 PROBLEM!
    Von hennym im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 6
    Letzter Beitrag: 17.09.03, 22:09
  5. Antworten: 6
    Letzter Beitrag: 13.06.02, 12:29