Bug de musique java

Epic_sans.fr -  
 Epic_sans.fr -
Bonjour,
Je suis entrain actuellement de programmer un jeu, j'ai peu écrire 700 lignes de code(44Mo) .
le seul problème dans mon code est la musique, quand je lance mon programme, une erreur s'affiche:
Exception in thread "main" java.lang.IllegalArgumentException: No line matching interface Clip supporting format PCM_SIGNED unknown sample rate, 16 bit, stereo, 4 bytes/frame, big-endian is supported.
Le code de la musique:
File file = new File("/home/lukas/Téléchargements/tomas.wav");
try {
AudioInputStream audioIn = AudioSystem.getAudioInputStream(file);
// Get a sound clip resource.
Clip clip = AudioSystem.getClip();
// Open audio clip and load samples from the audio input stream.
clip.open(audioIn);
clip.start();
clip.loop(boucleson);
} catch (UnsupportedAudioFileException ep) {
ep.printStackTrace();
} catch (IOException ep) {
ep.printStackTrace();
} catch (LineUnavailableException ep) {
ep.printStackTrace();
}

//Question secondaire (et aussi, je suis sur linux, linux arrive très bien à ouvrir mon application en plein écran avec "window.setExtendedState(JFrame.MAXIMIZED_BOTH); " mais, window n'y arrive pas, pourquoi ? et comment puis-je remédier à cela ?)

Configuration: Linux / Firefox 79.0

5 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Cela ressemble à une erreur dans le format de ton fichier .wav

    Tu peux essayer avec un autre fichier, par exemple j'ai testé le fichier de 1 Mo sur
    https://file-examples.com/index.php/sample-audio-files/sample-wav-download/

    Si je fais
    System.out.println(audioIn.getFormat());
    j'obtiens ce résultat :
    PCM_SIGNED 8000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
    La valeur 8000.0 Hz est indiquée là où dans ton erreur tu as "unknown sample rate"

    Quant à ta question sur JFrame.MAXIMIZED_BOTH, cela fonctionne très bien sous Windows, mais cela rentre peut-être en conflit avec d'autres instructions dans ton code.
    0
    1. KX
       
      Mais pourtant, le fichier marchais très bien avant, je ne comprends pas trop comment il aurait peu changer comme ça..mais merci, je vais essayer de changer de musique ! (et merde, je me suis gourer et j'ai mis ton pseudo, désolé )
      0
  2. Epic_sans.fr
     
    ah ouais par contre.. là, j'ai relancer mon ide (eclipse) ça marche alors que je n'ai rien toucher.. (modification: au bout du deuxième lancement.... ça ne fonctionne plus en m'affiche le meme message d'erreur.. )
    0
  3. Epic_sans.fr
     
    Enfin bref, désolé, je spam. Je voulais savoir, comment mettre une musique de base, longue, mais en pouvant modifier son volume ?
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Tu peux modifier le volume avec FloatControl.Type.MASTER_GAIN.

      Exemple :
      clip.open(audioIn);
      FloatControl masterGain = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
      masterGain.setValue(-30);
      clip.start();
      0
  4. Epic_sans.fr
     
    Merci ! Mais.. pour mon problème, saurais-tu pourquoi cela fait ça ? une fois ça ne marche pas et l'autre oui sans changer ni ajouter ni supprimer la moinde ligne de code ?
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Est-ce que le programme est bien arrêté ?
      Si tu as deux exécutions en parallèle, parce que la première n'est pas vraiment arrêté, tu pourrais avoir un conflit au moment d'accéder à la ressource.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Epic_sans.fr
     
    oui, il l'est ! ^^ j'ai défini le mode de femeture sur exit and close.
    0