Derniers sujets






Jouer un son dans un JPanel

Voir le sujet précédent Voir le sujet suivant Aller en bas

Jouer un son dans un JPanel

Message  Zepalkia le Jeu 5 Avr - 11:50

Lors de la création d'applications en java, comme de tout autre logiciel d'ailleurs, il est en général bien sympathique de pouvoir rajouter du son que ça soit pour un jeu ou même pour un logiciel utilitaire.
Et c'est très simple à faire une fois qu'on connaît la méthode, c'est donc cette méthode que je vais vous expliquer ici et qui vous permettra d'importer n'importe quel fichier son et de le jouer/l'arrêter quand vous le voudrez dans un JPanel.

Premièrement, il faut que votre ou vos fichier(s) son soient au format .wav, oubliez le .mp3, même s'il existe des méthodes permettant de lire des fichiers au format .mp3 (ou dans n'importe quel format d'ailleurs) celle-ci sont beaucoup plus complexes et si ce n'est que pour un petit projet pouvoir jouer un son en 5 lignes de codes est suffisant je pense, pas besoin de rajouter des tas de méthodes compliquées pour rien, donc prenez l'habitude d'abord d'utiliser des fichiers sonores au format .wav et que vous placez dans le même dossier que votre application.

Maintenant que vous avez votre ou vos fichier(s) son, rajoutez les 3 lignes de codes suivantes en haut de votre JPanel pour importer ces nouvelles bibliothèques :

Code:


import java.net.URL;
import java.applet.Applet;
import java.applet.AudioClip;


C'est bon ? Pas grand chose à expliquer là si ce n'est qu'elles sont obligatoire pour la méthode que je vais vous expliquer ici.
Descendons un peu dans la partie où vous déclarez vos variables, déclarez la variable suivante :

Code:

URL url_1 = Launcher.class.getResource( "chemin_du_fichier/musique_1.wav" );

Là par contre il va falloir plus d'explications, tout d'abord "url_1" est le nom que vous donnez à votre variable de type URL, donc vous pouvez mettre le nom que vous voulez il suffit de vous en rappeler pour plus tard. "chemin_du_fichier/" n'est obligatoire que si vous avez mis vos fichiers sonores dans un dossier à part et non pas directement à la racine de votre application. Par exemple, si vous avez créé un fichier "sons" où vous avez regroupé tous vos effets sonores, vous devrez déclarer votre variable avec ( "sons/musique_1.wav" ) ;

Si vous n'avez pas créé d'autres fichiers, le nom du fichier son (ici "musique_1") seul est obligatoire, n'oubliez pas de préciser l'extension du fichier.
Vous pouvez désormais faire ça pour déclarer tous vos fichiers sons (en les appelant, par exemple, "url_2", "url_3" etc...)

Rajoutez à la suite cette ligne de code :
Code:


AudioClip ac1 = Applet.newAudioClip(url_1);


Ici aussi, "ac1" est le nom de la classe de type "AudioClip" donc vous pouvez l'appeler comme vous voulez mais j'aime bien, personnellement, les appeler à la suite ("ac2","ac3","ac4" etc...) pour plus facilement m'y retrouver. Cette variable est désormais "liée" en quelque sorte au fichier son "url_1" que vous avez déclaré juste avant, c'est désormais cette variable de type AudioClip que vous allez utiliser pour lancer ou stopper le son.

Du coup maintenant, vous n'avez plus que deux variables à utiliser et c'est fini :
Code:


ac1.play();

Pour lancer jouer le son (changez le nom "ac1" selon le nom que vous aurez donné à votre variable de type AudioClip bien entendu)

et
Code:


ac1.stop();


Pour stopper ce même son, à vous de les placez où vous le voulez (au début d'une animation, en même temps que l'appui d'une touche ou d'un bouton etc...), là c'est à vous de les utiliser où bon vous semble selon l'utilité que vous en avez, mais vous pouvez vous rendre compte que c'est vraiment très simple n'est-ce pas ? La seule contrainte de cette méthode c'est l'obligation de passer par un fichier en .wav mais sinon je la trouve largement plus simple que plein d'autres méthodes existantes et je l'utilise tout le temps donc à vous d'en faire ce que vous voulez maintenant

_________________







Zepalkia
Admin
Admin

Avertissement : aucun avertissement
Messages : 883
Date d'inscription : 23/12/2009
Age : 24

http://sos-internautes.forumactif.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum