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

AWT/Swing Java Discussion :

mon jar ne lit pas les sons wav


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut mon jar ne lit pas les sons wav
    Bonjour,

    j'ai un gros projet sur Eclipse. J'y ai ajouté des sons au formats wav,. Sur Eclipse les sons s'executent sans aucun pb. (du style clike bouton de 2 sec)

    Par contre avec le jar, si je lance l'applet par mozilla ou internet expl pas de son du tout ??

    ça serait dommage de perdre ça.
    vous connaissez la raison ??

    merci !

  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 confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut en rajoutant cette classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream is1 = getClass().getResourceAsStream("fichier.txt");
    alors ça veut dire toutes mes packages auront accès au son ? dans le jar
    j'ai pas besoin de lui indiquer quel packages ont besoin du son ?

  4. #4
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut j'ai fait ça mais c'est pas concluant
    surtout que ça me fait un warning et que ça marche pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void actionPerformed(ActionEvent e) {
            InputStream is1 = getClass().getResourceAsStream("bulles.wav"); 
            Object source;
            source = e.getSource();
     
            if (source == b_start) {
                Sound.readWavFile("bulles.wav");
                action_b_start();
     
            }
    }
    merci

  5. #5
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Utilises la balise [code] (disponible dans le formulaire avec #) pour mettre en forme ton code source, afin qu'il soit lisible plus facilement, merci.

    Pour ce qui est de ton problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void actionPerformed(ActionEvent e) {
    InputStream is1 = getClass().getResourceAsStream("bulles.wav");
    Object source;//inutile
    source = e.getSource();//inutile car tu ne l'utilises qu'une fois
    
    if (e.getSource() == b_start) {
    Sound.readWavFile("bulles.wav");
    /* Ton problème reste le même, tu donnes un chemin de fichier, or, ce fichier n'existe pas */
    action_b_start();
    
    }
    }
    En fait, quand tu mets un fichier dans un jar, il n'existe plus en tant que fichier, c'est juste un stream de données. Tu ne peux plus y accéder avec un chemin (ou path si tu préfères). Donc quand tu fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sound.readWavFile("bulles.wav");
    Ton programme ne trouve pas bulles.wav, normal, puisque il n'existe pas de fichier bulles.wav, puisque tu l'as mis dans un Jar. Le seul fichier qui existe, c'est le fichier Jar. Donc pour accéder au contenu du ficher bulles.wav, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream is1 = getClass().getResourceAsStream("bulles.wav");
    Ce que tu as fait dans ton code, mais tu dois l'utiliser ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sound.readWavFile(is1);
    Je ne sais pas d'où tu sors la classe Sound, je ne suis pas sur que la méthode readWavFile accepte un stream en paramètre, mais elle devrait . Bonne chance.

  6. #6
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut ça m'embete
    Salut

    ma classe Sound provient de forums developpez.com
    je sais plus comment ça s'appelle, ce sont des codes libres que des utilisateurs on jugé utile de laisser. c'estle premier code laissé d'une longue liste.

    le hic c'est que je le trouve plus

    néanmois, la classe sound n'a pas accepté un arg de type audioInputStream
    voici le code de 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
    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
    49
    50
    51
    52
     public class Sound
    {        
        /**
         * Read an audio file in wav format.
         * @param fileName the path of the file you want to read.
         */
       public static void readWavFile(InputStream str) // j'ai enlevé un argument de type fileName
        {
            class SoundRunnable implements Runnable
            {
    
            	   /*
            	    * (non-Javadoc)
            	    * @see java.lang.Runnable#run()
            	    */
                public void run()
                {
                	try
                        {
       
                            AudioInputStream ais = AudioSystem.getAudioInputStream(str) !! la ça ce marche pas;
                            AudioFormat format = ais.getFormat();
                            Info info = new Info(SourceDataLine.class, format);
                            SourceDataLine source = (SourceDataLine)AudioSystem.getLine(info);
                            source.open(format);
                            source.start();
                            int read = 0;
                            byte[] audioData = new byte[16384];
                            while(read > -1)
                                {
                                    read = ais.read(audioData, 0 , audioData.length);
                                    if(read >= 0)
                                        source.write(audioData, 0, read);
                                }
                            source.drain();
                            source.close();
                        }
                    catch(Exception e)
                        {
                            e.printStackTrace();
                        }
                  
                }
                
            }
            Runnable r = new SoundRunnable();
            Thread t = new Thread(r);
            t.start();
        }
    
    }

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

Discussions similaires

  1. Mon Jar n'inclue pas les dependances Maven
    Par maloups dans le forum Maven
    Réponses: 6
    Dernier message: 24/06/2009, 19h34
  2. [Tcl/Tk] Mon interface n'affiche pas les images
    Par randazar dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 21/11/2006, 16h48
  3. Mon compilo ne reconnait pas les UINT8
    Par baert dans le forum C++
    Réponses: 11
    Dernier message: 08/02/2006, 16h08

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