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 :

Ajouter un WAV comme musique de fond dans un petit jeu


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 35
    Par défaut Ajouter un WAV comme musique de fond dans un petit jeu
    Bonjour, je viens de compléter un petit jeu et j'aimerais y ajouter une musique de fond. En fait, ça marche parfaitement et tout est fonctionnel. Mais, lorsque je Nettoie et Construit avec NetBeans pour créer mon fichier .JAR, il y a plusieurs erreurs liées à l'audio.

    Voici le code de ma classe MAIN :



    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
    import java.io.*;
    import sun.audio.AudioPlayer;
    import sun.audio.AudioStream;
     
    public class Main {
        public static void main(String[] args) {
     
            try 
            { 
                InputStream in = new FileInputStream("sons/sw.wav");
                AudioStream as = new AudioStream(in);
                AudioPlayer.player.start(as);
            }
            catch (IOException e) 
            {
            System.err.println(e);  
            }    
     
            Frame frame = new Frame();
        }
    }



    et voici le message d'erreur avec Nettyoer et Construire (Maj + F11) :




    ant -f "P:\\Essm_Codage_prof\\Travaux\\Stéphan\\flappy vSW\\flappy vSW" -Dnb.internal.action.name=rebuild clean jar
    init:
    deps-clean:
    Updating property file: P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\build\built-clean.properties
    Deleting directory P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\build
    clean:
    init:
    deps-jar:
    Created dir: P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\build
    Updating property file: P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\build\built-jar.properties
    Created dir: P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\build\classes
    Created dir: P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\build\empty
    Created dir: P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\build\generated-sources\ap-source-output
    Compiling 6 source files to P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\build\classes
    P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\src\Main.java:2: warning: AudioPlayer is internal proprietary API and may be removed in a future release
    import sun.audio.AudioPlayer;

    P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\src\Main.java:3: warning: AudioStream is internal proprietary API and may be removed in a future release
    import sun.audio.AudioStream;

    P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\src\Main.java:11: warning: AudioStream is internal proprietary API and may be removed in a future release
    AudioStream as = new AudioStream(in);

    P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\src\Main.java:11: warning: AudioStream is internal proprietary API and may be removed in a future release
    AudioStream as = new AudioStream(in);

    P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\src\Main.java:12: warning: AudioPlayer is internal proprietary API and may be removed in a future release
    AudioPlayer.player.start(as);

    5 warnings
    compile:
    Created dir: P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\dist
    Copying 1 file to P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\build
    Nothing to copy.
    Building jar: P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\dist\flappy1.jar
    To run this application from the command line without Ant, try:
    java -jar "P:\Essm_Codage_prof\Travaux\Stéphan\flappy vSW\flappy vSW\dist\flappy1.jar"
    jar:
    BUILD SUCCESSFUL (total time: 4 seconds)




    Alors, avez-vous une autre manière (à modifier dans mon MAIN) pour lire mon fichier "sw.wav"?

    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Ce ne sont pas des erreurs mais des alertes parce que tu utilises des classes de packages sun qui pourraient bien disparaître ou simplement ne pas exister pour une autre jvm (qui n'est pas faite par Sun, ou Oracle).

    Tu peux faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
    Clip clip = AudioSystem.getClip();
    clip.open(audioIn);
    clip.start();
    url c'est une url, tu peux directement générer une URL sur un fichier, mais le mieux est de mettre ton son dans le classpath et de le charger comme ressource. Ainsi quand tu feras un jar, le fichier .wav ne se baladera pas à côté. Par exemple si tu mets ton dossier sons dans le dossier src :
    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
     
    import java.io.IOException;
    import java.net.URL;
     
    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;
     
    public class Main {
        public static void main(String[] args) {
           try {
               URL url Main.class.getClassLoader().getResource("/sons/sw.wav");
               AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
               Clip clip = AudioSystem.getClip();
               clip.open(audioIn);
               clip.start();
           }
    	catch (LineUnavailableException | UnsupportedAudioFileException | IOException e) {
    		throw new RuntimeException(e);
    	}
        }
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 35
    Par défaut
    J'essaie ça ce soir et je confirme si ça marché. Merci.

  4. #4
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 35
    Par défaut Problème
    Je viens de faire un copié/collé et ç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
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import java.io.IOException;
    import java.net.URL;
     
    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;
     
    public class Main {
        public static void main(String[] args) {
           try {
               URL url Main.class.getClassLoader().getResource("/sons/sw.wav");
               AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
               Clip clip = AudioSystem.getClip();
               clip.open(audioIn);
               clip.start();
           }
    	catch (LineUnavailableException | UnsupportedAudioFileException | IOException e) {
    		throw new RuntimeException(e);
    	}
        }
    }
    voici le message d'erreur:

    run:
    Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - exception javax.sound.sampled.UnsupportedAudioFileException is never thrown in body of corresponding try statement
    at Main.main(Main.java:19)
    C:\Users\gznnn\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
    BUILD FAILED (total time: 1 second)


    Qu'est-ce que j'ai oublié de faire?

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Désolé, j'ai fait une faute de frappe, il manque le égal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    URL url = Main.class.getClassLoader().getResource("/sons/sw.wav");
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 35
    Par défaut
    ok.... corrigé et voici le nouveau message d'erreur :


    Exception in thread "main" java.lang.NullPointerException
    at com.sun.media.sound.StandardMidiFileReader.getSequence(StandardMidiFileReader.java:207)
    at javax.sound.midi.MidiSystem.getSequence(MidiSystem.java:841)
    at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:178)
    at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1147)
    at Main.main(Main.java:21)
    C:\Users\gznnn\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
    BUILD FAILED (total time: 0 seconds)

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

Discussions similaires

  1. Gestion du temps réel dans un petit jeu
    Par Matlanoob dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 07/04/2017, 13h52
  2. Réponses: 2
    Dernier message: 14/12/2015, 01h05
  3. Insérer une musique de fond dans page html
    Par solorac dans le forum Flash
    Réponses: 5
    Dernier message: 17/05/2010, 11h17
  4. Musique de fond dans userform
    Par petibonohm dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/02/2008, 13h57
  5. Ajouter un DLL comme parametre dans une method
    Par charaf dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/09/2007, 09h36

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