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

avec Java Discussion :

Pas de son en .jar


Sujet :

avec Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2013
    Messages : 84
    Par défaut Pas de son en .jar
    Bonjour à tous,

    Je viens vers vous car après plusieurs tentatives, je n'arrive pas à lire un fichier wave quand j’exécute mon .jar.

    Tout d'abord voici le code que j'utilise pour lire du son :

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    import java.io.File;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.Clip;
    import javax.sound.sampled.LineUnavailableException;
    import javax.sound.sampled.UnsupportedAudioFileException;
     
    /**
     * Handles playing, stoping, and looping of sounds for the game.
     * @author Tyler Thomas
     *
     */
    public class Sound {
        private Clip clip;
        public Sound(String fileName) {
            // specify the sound to play
            // (assuming the sound can be played by the audio system)
            // from a wave File
            try {
                File file = new File(fileName);
                if (file.exists()) {
                    AudioInputStream sound = AudioSystem.getAudioInputStream(file);
                 // load the sound into memory (a Clip)
                    clip = AudioSystem.getClip();
                    clip.open(sound);
                }
                else {
                    throw new RuntimeException("Sound: file not found: " + fileName);
                }
            }
            catch (MalformedURLException e) {
                e.printStackTrace();
                throw new RuntimeException("Sound: Malformed URL: " + e);
            }
            catch (UnsupportedAudioFileException e) {
                e.printStackTrace();
                throw new RuntimeException("Sound: Unsupported Audio File: " + e);
            }
            catch (IOException e) {
                e.printStackTrace();
                throw new RuntimeException("Sound: Input/Output Error: " + e);
            }
            catch (LineUnavailableException e) {
                e.printStackTrace();
                throw new RuntimeException("Sound: Line Unavailable Exception Error: " + e);
            }
     
        // play, stop, loop the sound clip
        }
        public void play(){
            clip.setFramePosition(0);  // Must always rewind!
            clip.start();
        }
        public void loop(){
            clip.loop(Clip.LOOP_CONTINUOUSLY);
        }
        public void stop(){
                clip.stop();
            }
        }
    et pour le jouer j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sound = new Sound(getClass().getResource("/ressources/Tetris_song.wav").getPath());
    sound.loop();
    Maintenant voici mon problème.
    Je suis sous eclipse et quand je lance mon programme j'ai bien du son.
    Par contre quand je crée un jar impossible d'avoir du son. Il dit "java.lang.RuntimeException Sound: file not found ..."

    Après quelques recherche j'ai vérifier plusieurs choses.
    Dans le fichier jar j'ai bien le fichier audio. De plus j'ai aussi des images dans le même fichier que l'audio et pas de problème pour les ouvrir alors que j'utilise getClass().getResource("/ressources/Image.gif").

    Je ne sais pas d’où viens l'erreur

    J'espère que vous pourrez m'aider

    Cordialement

    Guillaume

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Il est dans le jar, c'est une ressouce, pas un fichier, donc inutile de tenter d'en faire un new File , ça ne marchera pas. getPath ne donne que la partie path d'une URL, qui n'a rien à voir avec un nom de fichier.

    Essaie plutot ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        public Sound(URL resouce) {
    AudioInputStream sound = AudioSystem.getAudioInputStream(resouce);

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2013
    Messages : 84
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Il est dans le jar, c'est une ressouce, pas un fichier, donc inutile de tenter d'en faire un new File , ça ne marchera pas. getPath ne donne que la partie path d'une URL, qui n'a rien à voir avec un nom de fichier.

    Essaie plutot ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        public Sound(URL resouce) {
    AudioInputStream sound = AudioSystem.getAudioInputStream(resouce);
    Effectivement c'était cela.
    Une fois que l'on voit l'erreur on se dit pourquoi on ne l'a pas vu.

    En tout cas un grand merci pour cette rapidité.

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

Discussions similaires

  1. [PB ODBC] Ce serveur n'existe pas ou son accès est refusé
    Par meufeu dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/12/2015, 18h02
  2. mon jar ne lit pas les sons wav
    Par poulette3000 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 13/05/2007, 19h56
  3. [FLASH 8] Pas de son
    Par i_shinji dans le forum Flash
    Réponses: 2
    Dernier message: 13/12/2005, 00h09
  4. ShellExecute qui veut pas faire son boulot...
    Par giloutho dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 31/08/2005, 11h49
  5. [J2ME]pas de son
    Par Arkan dans le forum Java ME
    Réponses: 2
    Dernier message: 04/04/2005, 15h32

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