Bonjour,
Décidément, moi, Java et le son
J'ai développé un début de programme que j'aimerais faire tester à des utilisateur ayant des machines encore sous windows 98 (processeur < 400MHz pour situer un peu).
J'ai testé ce programme sous windows XP sans souci (tout fonctionne).
Je l'ai testé sous windows 98 et là je n'ai aucun son (je l'ai installé sur plusieurs machines et c'est toujours pareil).
Je vous remet les morceaux de code concernant le son :
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
| import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.DataLine.Info;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.AudioSystem;
import java.io.File;
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 String fileName)
{
class SoundRunnable implements Runnable
{
public void run()
{
try
{
AudioInputStream ais = AudioSystem.getAudioInputStream(new File(fileName));
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();
}
} |
et l'appel :
Sound.readWavFile("sons/unSon.wav");
Je ne sais pas trop à quoi cela est dû :
- la classe javax.sound
- la vitesse du processeur
- la quantité de RAM
- le système d'exploitation
- une version de la machine virtuelle "trop récente" (jre1.5.0_09, la dernière)
?
Merci pour votre aide.
Partager