mon jar ne lit pas les sons wav
Bonjour,
j'ai un gros projet sur Eclipse. J'y ai ajouté des sons au formats wav,. Sur Eclipse les sons s'executent sans aucun pb. (du style clike bouton de 2 sec)
Par contre avec le jar, si je lance l'applet par mozilla ou internet expl pas de son du tout ??
ça serait dommage de perdre ça.
vous connaissez la raison ??
merci !
en rajoutant cette classe
Code:
InputStream is1 = getClass().getResourceAsStream("fichier.txt");
alors ça veut dire toutes mes packages auront accès au son ? dans le jar
j'ai pas besoin de lui indiquer quel packages ont besoin du son ?
j'ai fait ça mais c'est pas concluant
surtout que ça me fait un warning et que ça marche pas !
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
public void actionPerformed(ActionEvent e) {
InputStream is1 = getClass().getResourceAsStream("bulles.wav");
Object source;
source = e.getSource();
if (source == b_start) {
Sound.readWavFile("bulles.wav");
action_b_start();
}
} |
merci
Comment puis indiquer le chemin du wav situé en dehors du fichier appelant ?
Merci ta solution est bien la bonne, le jar fonctionne.
Le truc c'est que j'aimerai bien faire un petit package avec tous les sons, plutot que de les coller dans le package du fichier class appelant le wav.
j'ai bien modifié la classe sound
Code:
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
| public class Sound
{
/**
* Read an audio file in wav format.
* @param fileName the path of the file you want to read.
*/
public static void readWavFile(final InputStream str)
{
class SoundRunnable implements Runnable
{
/*
* (non-Javadoc)
* @see java.lang.Runnable#run()
*/
public void run()
{
try
{
AudioInputStream ais = AudioSystem.getAudioInputStream(str);
AudioFormat format = ais.getFormat();
Info info = new Info(SourceDataLine.class, format);
SourceDataLine source = (SourceDataLine)AudioSystem.getLine(info);
source.open(format);
source.start();
int read = 0;
byte[] audioData = new byte[16384];
while(read > -1)
{
read = ais.read(audioData, 0 , audioData.length);
if(read >= 0)
source.write(audioData, 0, read);
}
source.drain();
source.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Runnable r = new SoundRunnable();
Thread t = new Thread(r);
t.start();
}
} |
Code:
1 2 3 4 5 6
|
InputStream is2 = getClass().getResourceAsStream("clic.wav");<-- c'est la que tout se joue (le path ?)
if(arg0.getSource()==b_ok){
Sound.readWavFile(is2);
valider();
} |
ca me permettrait une meillleure lisibilité
Donc comment faire l'appel ?
merci