IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Lecture de son MP3 avec la librairie JLayer


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut Lecture de son MP3 avec la librairie JLayer
    Bonsoir,
    je cherche à lire un son mp3 et j'ai vu que la librairie jlayer était faite exactement pour ça.

    Mais mon problème, c'est que dès que je run mon programme, j'ai juste le son qui tourne et je n'ai plus ma jframe qui apparaît...
    Voici la classe que j'utilise pour le son mp3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    import java.io.*;
    import javazoom.jl.player.advanced.*;
     
            // MP3, WMA, MPEG, WAV compatible
     
            public class Sound {
     
                    private boolean isPlaying = false;
                    private AdvancedPlayer player = null;
     
                    public Sound(String path) throws Exception {
                            InputStream in = (InputStream)new BufferedInputStream(new FileInputStream(new File(path)));
                            player = new AdvancedPlayer(in);
                    }
     
                    public Sound(String path,PlaybackListener listener) throws Exception {
                            InputStream in = (InputStream)new BufferedInputStream(new FileInputStream(new File(path)));
                            player = new AdvancedPlayer(in);
                            player.setPlayBackListener(listener);
                    }
     
                    public void play() throws Exception {
                            if (player != null) {
                                    isPlaying = true;
                                    player.play();
                            }
                    }
     
                    public void play(int begin,int end) throws Exception {
                            if (player != null) {
                                    isPlaying = true;
                                    player.play(begin,end);
                            }
                    }
     
                    public void stop() throws Exception {
                            if (player != null) {
                                    isPlaying = false;
                                    player.stop();
                            }
                    }
     
                    public boolean isPlaying() {
                            return isPlaying;
                    }
     
            }
    Et voici comment je fais appel à cette classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    this.str = "Musiques/mariosuperbros.mp3";
                    File f = new File(str);
    try {
                        this.s = new Sound(f.getAbsolutePath());
                        this.s.play();
                    } catch (Exception ex) {
                        Logger.getLogger(drawing.class.getName()).log(Level.SEVERE, null, ex);
                    }
    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut
    Merci pour votre réponse
    Je me suis inspiré du tuto et j'obtiens ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    new Thread(new Runnable(){
                        public void run(){
                            try {
                                s = new Sound(f.getAbsolutePath());
                                s.play();
                            } catch (Exception ex) {
                                Logger.getLogger(drawing.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                    });.start();
    ça marche...
    Maintenant pour arrêter le thread avec un bouton stop, je fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Thread.interrupt();
    Mais ça ne me l'arrête pas et j'ai toujours la musique qui tourne derrière donc je voulais savoir si je dois vraiment faire des try catch comme dans le tuto et throws les exceptions ou bien j'ai rater autre chose aussi...

    Merci pour votre aide

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut
    Pour ceux que ça intéresse, voici la solution pour arrêter la musique, il suffit de créer un autre thread qui fait appel à la fonction stop de la classe Sound:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    toolstopmusic.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent arg0){
                        new Thread(new Runnable(){
                            public void run(){
                                if(dr.s.isPlaying()){
                                    if(dr.s != null){
                                        try {
                                            dr.s.stop(dr.str);
                                        } catch (Exception ex) {
                                            Logger.getLogger(MainMenu.class.getName()).log(Level.SEVERE, null, ex);
                                        }
                                    }
                                }
                            }
                        }).start();
                      }
    	    });
    Je vérifie d'abord si un son tourne avec la fonctio isPlaying() qui retourne vrai si du son tourne, dans ce cas là je le stop
    Voilà

    Topic résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture de fichier mp3 avec servlets/JSP
    Par MarENSI dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/10/2010, 14h38
  2. lecture son mp3?
    Par jponsoda dans le forum MATLAB
    Réponses: 1
    Dernier message: 25/07/2010, 21h50
  3. Problème de son mp3 avec win2000
    Par Asdorve dans le forum Windows Serveur
    Réponses: 17
    Dernier message: 26/09/2006, 08h38
  4. impression HTML avec la librairie wxwindows
    Par farscape dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 23/12/2003, 08h47
  5. lecture de son à l'ouverture d'un formulaire
    Par cynferdd dans le forum IHM
    Réponses: 4
    Dernier message: 16/06/2003, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo