Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MP3] Jouer des MP3 en Java

    20 mars 2010 à 11:20:35

    Bonjour,

    nous devons dans le cadre d'un projet informatique à la fac réaliser un media player en Java.

    Nous avons réussi à jouer des .wav mais impossible de trouver comment jouer des mp3...

    Pourtant ce n'est pas faute d'avoir cherché ; j'ai essayé d'utiliser javazoom, FMOD, etc... mais on n'arrive vraiment pas à utiliser tout ça ya toujours un problème et ça marche jamais :p
    Je suis étonné qu'il y a si peu de documentation bien expliquée...

    On doit mal s'y prendre mais bon ce serait bien si quelqu'un qui a déjà le code ou seulement les connaissances pour nous aider beeen... nous aide ^^

    Merci beaucoup =)
    • Partager sur Facebook
    • Partager sur Twitter
      20 mars 2010 à 16:18:06

      Le mieux ne serait-il donc pas d'étudier la façon dont est crée un fichier MP3 ?

      Sinon voici quelques liens sympas :
      http://onjava.com/pub/a/onjava/2004/08 [...] tml?page=last
      http://www.javafr.com/codes/LECTEUR-MU [...] UR_21030.aspx (Player)
      • Partager sur Facebook
      • Partager sur Twitter
        20 mars 2010 à 18:13:47

        Voici un exemple de lecture de fichier mp3 avec Javazoom.

        import java.io.BufferedInputStream;
        import java.io.FileInputStream;
        import java.io.IOException;
        import java.io.InputStream;
        import java.net.URL;
        
        import javazoom.jl.decoder.JavaLayerException;
        import javazoom.jl.player.AudioDevice;
        import javazoom.jl.player.FactoryRegistry;
        import javazoom.jl.player.Player;
        
        public class jlp implements Runnable
        {
            private String fFilename = null;
            private boolean remote = false;
        
            static public jlp createInstance(String[] args)
            {
                jlp player = new jlp();
                if (!player.parseArgs(args))
                        player = null;
                return player;
            }
        
            jlp() {}
        
            public jlp(String filename)
            {
                init(filename);
            }
        
            protected void init(String filename)
            {
                fFilename = filename;
            }
        
            protected boolean parseArgs(String[] args)
            {
                boolean parsed = false;
                if (args.length == 1)
                {
                        init(args[0]);
                        parsed = true;
                        remote = false;
                }
                else if (args.length == 2)
                {
                        if (!(args[0].equals("-url")))
                        {
                                showUsage();
                        }
                        else
                        {
                                init(args[1]);
                                parsed = true;
                                remote = true;
                        }
                }
                else
                {
                        showUsage();
                }
                return parsed;
            }
        
            public void showUsage()
            {
                System.out.println("Usage: jlp [-url] <filename>");
                System.out.println("");
                System.out.println(" e.g. : java javazoom.jl.player.jlp localfile.mp3");
        
            }
            public void stop() throws JavaLayerException
            {
                try
                {
                        InputStream in = null;
                        if (remote == true)
                                try {
                                        in = getURLInputStream();
                                } catch (Exception e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        else in = getInputStream();
                        AudioDevice dev = getAudioDevice();
                        Player player = new Player(in, dev);
                        player.close();
                }
                catch (IOException ex)	{}
        
            }
        
            public void play()
                    throws JavaLayerException
            {
                    try
                    {
                        System.out.println("playing "+fFilename+"...");
                        InputStream in = null;
                        if (remote == true) in = getURLInputStream();
                        else in = getInputStream();
                        AudioDevice dev = getAudioDevice();
                        Player player = new Player(in, dev);
                        player.play();
                    }
                    catch (IOException ex)
                    {
                            throw new JavaLayerException("Problem playing file "+fFilename, ex);
                    }
                    catch (Exception ex)
                    {
                            throw new JavaLayerException("Problem playing file "+fFilename, ex);
                    }
            }
        
            /**
             * Jouer fichier de l' URL (Streaming).
             */
            protected InputStream getURLInputStream() throws Exception
            {
        
                    URL url = new URL(fFilename);
                    InputStream fin = url.openStream();
                    BufferedInputStream bin = new BufferedInputStream(fin);
                    return bin;
            }
        
            /**
             * Jouer un fichier de FileInputStream.
             */
            protected InputStream getInputStream() throws IOException
            {
                    FileInputStream fin = new FileInputStream(fFilename);
                    BufferedInputStream bin = new BufferedInputStream(fin);
                    return bin;
            }
        
            protected AudioDevice getAudioDevice() throws JavaLayerException
            {
                    return FactoryRegistry.systemRegistry().createAudioDevice();
            }
        
            public void run() {
                while(true)
                {
                    try {
                        this.play();
                    }catch (Exception e) {e.printStackTrace(); break;}
                }
            }
        
            public static void main(String[] ar)
            {
                jlp mp=new jlp();
                mp.init("D://Users/xxx/Desktop/I gotta feeling.mp3");
                try {
                    mp.play();
                }catch (Exception e) {e.printStackTrace();}
            }
        }
        

        • Partager sur Facebook
        • Partager sur Twitter
        J'ai tous les badges d'OpenClassrooms.
          30 mars 2010 à 21:30:50

          Bonsoir,

          merci beaucoup pour vos réponses,
          j'ai effectivement réussi à jouer un fichier MP3 à l'aide de Javazoom.
          J'avais déjà essayé comme écrit dans mon précédent post et j'avais déjà un script mais j'avais un tout bête problème de ClassPATH... :s

          Bref je vous expose un nouveau problème, j'aimerais maintenant pouvoir controler le volume à l'aide d'un JSlider (que ce soit à l'aide de Javazoom ou alors carrément modifier le volume principal de l'ordinateur)... mais je comprends pas trop tout ce que je peux rencontrer sur le net (surtout des trucs en anglais qui utilisent diverses bibliothèques..)

          Merci beaucoup pour vos réponses précédentes et, j'espère, vos réponses futures ^^
          • Partager sur Facebook
          • Partager sur Twitter

          [MP3] Jouer des MP3 en Java

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown