Jouer de la musique format wav

Fermé
Utilisateur anonyme - 13 mai 2018 à 20:59
 Utilisateur anonyme - 14 mai 2018 à 18:13
Bonjour,

D'après mes recherches, j'ai trouvé ce morceau de code pour jouer un fichier au format .wav dans une application Java :
                        // s_url string path to .wav file
                        File f = new File(s_url);
			URL url = f.toURI().toURL();
			AudioInputStream a = AudioSystem.getAudioInputStream(url);
			Mixer.Info[] arrMixerInfo = AudioSystem.getMixerInfo();
			Clip clip1 = AudioSystem.getClip(arrMixerInfo[0]);
			clip1.open(a);
			clip1.start();
			clip1.close();


Ce bout de programme ne fonctionne pas chez moi. J'ai tenté de débuger un petit peu :
- L'URL est correct : url.getPath() me renvoie le chemin absolu vers mon fichier
- Le buffer de AudioInputStream n'est pas vide : a.getFrameLength() renvoie 631343
- Le channel 0 est défini : arrMixerInfo[0].getName() renvoie Périphérique audio principal
- Le buffer de clip1 après son instanciation est vide : clip1.getFrameLength() renvoie 0
- Le buffer de clip1 est de même taille que celui AudioInputStream : clip1.getFrameLength() renvoie 631343

Aucun autre channel de Mixer.Info ne fonctionne en dehors du premier.
J'ai essayé plusieurs solutions mais toutes compliquées et ne résout pas le problème.

Merci de bien vouloir m'éclairer.
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 mai 2018 à 23:12
Bonjour,

Quels sont tes imports ? Des javax.sound ? Ce sont d'anciennes classes Java 3+ (sorti en 2000 !!)
Avec JavaFX (Java 7+) de nouvelles classes sont apparues, tu devrais regarder de ce côté.

Exemple :
// import javafx.scene.media.AudioClip;
AudioClip clip = new AudioClip(s_url);
clip.play();

Voir la documentation :
https://docs.oracle.com/javase/10/docs/api/javafx/scene/media/AudioClip.html
0
Utilisateur anonyme
14 mai 2018 à 18:13
J'avais trouvé une solution similaire mais il fallait que mon application Java soit une applet. Il semblerait qu'ici ça ne soit pas le cas. Cependant, le programme ne fait rien lorsqu'il est lancé.
0