Bonjour je voudrai ajouter un son wav dans mon programme qui s'active lorsque le JRadioButton "son" soit activé et j'ai trouver l'importation de sound.samplet pour les sons , le problème est que je ne sais pas comment déclarer avec cet import.
Bonjour je voudrai ajouter un son wav dans mon programme qui s'active lorsque le JRadioButton "son" soit activé et j'ai trouver l'importation de sound.samplet pour les sons , le problème est que je ne sais pas comment déclarer avec cet import.
Salut,
L'API JavaSound est d'assez bas niveau, t'es pas rendu même pour jouer un son WAV (PCM). Tu peux allez faire un tour sur jsresources.org. Sinon, il y a moyen de faire cela très facilement avec un objet Clip, c'est indiqué dans la FAQ (mais seul les formats non compressés peuvent être utilisés).
merci mais le probleme c'est que je ne travail pas en applet je le fait en java application sur eclipse !
merci pour l'exemple Hervé mais je souhaiterai un son de fond durant le jeu
et qui s'activerai une fois mon JRadioButton cliqué pas un son a chaque fois que je joue !
J'utilise cette classe pour les clip audio qui marche bien. Très inspirée du livre de Deitel et Deitel mais modifiée.
Avec cela, tu peux faire pas mal de choses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155 class LanceSon implements LineListener { AudioInputStream fluxSonore;// Flux d'entrÈe audio. Clip clip; // Ligne pour les clips. File fichierSonore;// Fichier sonore. FloatControl sampleRateControl;//Autres public boolean rejouer = false;// Valeur boolean indiquant une reprise du fichier audio. /* Constructeur de LecteurDeClip.*/ public LanceSon (File fichierSonore){ this.fichierSonore = fichierSonore; } /* Ouvrir le fichier et renvoyer true si succËs.*/ public boolean ouvrirFichier(){ // Obtenir le flux audio du fichier. try { fluxSonore = AudioSystem.getAudioInputStream( fichierSonore ); } // Ex si fichier audio non supportÈ par JavaSound. catch ( UnsupportedAudioFileException audioException ) { System.out.println("Exception1");//par exemple return false; } // Si erreur d'entrÈe-sortie lors de l'obtention du flux. catch ( IOException ioException ) { System.out.println("Exception2");//par exemple return false; } // Invoquer chargerClip et renvoie true si le chargement rÈussit. return chargerClip(); } /*fin de la mÈthode ouvrirFichier*/ /* Charger le clip sonore.*/ public boolean chargerClip () { // Obtenir la ligne de clip pour le fichier. try { // Obtenir le format audio du fichier sonore. AudioFormat formatAudio = fluxSonore.getFormat(); // DÈfinir les informations de ligne selon le type de ligne, // le codage et la taille en trames du fichier audio. DataLine.Info infosLigneDonnees = new DataLine.Info( Clip.class, AudioSystem.getTargetFormats( AudioFormat.Encoding.PCM_SIGNED, formatAudio ), formatAudio.getFrameSize(), formatAudio.getFrameSize() * 2 ); // S'assurer que le systËme supporte la ligne des donnÈes. if ( !AudioSystem.isLineSupported( infosLigneDonnees ) ) { System.out.println("Fichier audio non supportÇ!"); return false; } // Obtenir les ressources de la ligne de clip. clip = ( Clip ) AudioSystem.getLine( infosLigneDonnees ); // couter les ÈvÈnements sur la ligne de clip. clip.addLineListener( this ); // Ouvrir clip audio et obtenir ressources systËme requises. clip.open( fluxSonore ); } // fin du try // Si ressources de la ligne non disponibles. catch ( LineUnavailableException noLineException ) { System.out.println("Exception3"); return false; } // Si erreur d'entrÈe-sortie durant l'interprÈtation des donnÈes audio. catch ( IOException ioException ) { System.out.println("Exception4"); return false; } // Si fichier audio chargÈ avec succËs. return true; } // fin de la mÈthode chargerClip /* DÈmarrer la lecture du clip audio.*/ public void lecture() { clip.start(); }/*appelle cette méthode pour lancer la lecture, une fois le clip audio chargé.*/ /*Ecouteur de ligne qui permet d'arreter ou de rejouer a la fin du clip.*/ public void update( LineEvent lineEvent ) { // Si le clip est terminÈ, fermer le clip. if ( lineEvent.getType() == LineEvent.Type.STOP && !rejouer ) close(); // Si le mode rejouer est en marche, rejouer le clip continuellement. else if ( lineEvent.getType() == LineEvent.Type.STOP && rejouer ) { // Rejouer le clip continuellement. clip.loop( Clip.LOOP_CONTINUOUSLY ); } } /*Accord du sample, pour le transposer dans le grave, valeurs inferieures a 48 000*/ public void accord(float ValeurSampleRate){ float sampleRate = ValeurSampleRate; FloatControl sampleRateControl = (FloatControl) clip .getControl(FloatControl.Type.SAMPLE_RATE); sampleRateControl.setValue(sampleRate); } /*Volume du sample*/ public void volume(float ValeurVolume){ float ContVol = ValeurVolume; FloatControl VolumeControl = (FloatControl) clip .getControl(FloatControl.Type.MASTER_GAIN); VolumeControl.setValue(ContVol); } /*Panoramique*/ public void pan(float ValeurPan){ float ContPan = ValeurPan; FloatControl PanControl = (FloatControl) clip .getControl(FloatControl.Type.PAN); PanControl.setValue(ContPan); //Les valeurs de panoramique vont de -1 1. } /*DÈfinir si le clip doit Ítre rejouÈ.*/ public void setRejouer( boolean valeur ){ rejouer = valeur; } /*ArrÍter et fermer le clip, puis libÈrer les ressources systËme.*/ public void close() { if ( clip != null ) { clip.stop(); clip.close(); } } } /*fin de la classe LanceSon*/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager