Bug de musique java
Epic_sans.fr
-
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 ?)
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
-
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 faisSystem.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. -
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.. )
-
Enfin bref, désolé, je spam. Je voulais savoir, comment mettre une musique de base, longue, mais en pouvant modifier son volume ?
-
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();
-
-
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 ?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -