Bug de musique java

Fermé
Epic_sans.fr - 17 août 2020 à 00:19
 Epic_sans.fr - 17 août 2020 à 13:11
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
A voir également:

5 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
17 août 2020 à 09:37
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
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
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
Epic_sans.fr
17 août 2020 à 12:19
Enfin bref, désolé, je spam. Je voulais savoir, comment mettre une musique de base, longue, mais en pouvant modifier son volume ?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
17 août 2020 à 12:53
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
Epic_sans.fr
17 août 2020 à 12:58
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
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
17 août 2020 à 13:08
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Epic_sans.fr
17 août 2020 à 13:11
oui, il l'est ! ^^ j'ai défini le mode de femeture sur exit and close.
0