Bonjour,
Je cherche à jouer un son .wav lorsque je lance mon application Java. J'arrive à jouer le son une fois, mais le problème vient quand je cherche à le jouer en boucle... D'après les tutoriels que j'ai pu lire, il me faut passer en utiliser la méthode getData()
Or celle ci me renvoie une exception :
java.io.IOException could not create AudioData object
at sun.audio.Audiostream.getData(Unknow Source)
Merci d'avance pour l'aide que vous pourrez m'apporter.
Voici ma classe Audio que j'utilise :
Remarque: Du fait de l'utilisation dans cette classe de getData, même jouer un son une fois ne fonctionne plus pour la même raison
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 import java.io.*; import sun.audio.*; public class Audio { private AudioData audiodata; private AudioStream audiostream; private ContinuousAudioDataStream continuousaudiostream; //static int length; public Audio(String filename) throws java.io.IOException { FileInputStream fis = new FileInputStream(filename); audiostream = new AudioStream(fis); audiodata = audiostream.getData(); //audiostream = null; //continuousaudiostream = null; } public void play() { AudioPlayer.player.start(audiostream); } public void loop() { continuousaudiostream = new ContinuousAudioDataStream(audiodata); AudioPlayer.player.start(continuousaudiostream); } public void stop() { AudioPlayer.player.stop(audiostream); //if (continuousaudiostream != null) // AudioPlayer.player.stop(continuousaudiostream); } }
Et Voici la version qui fonctionne qui me permet de jouer le son une fois
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 import java.io.*; import sun.audio.*; public class Audio { private AudioData audiodata; private AudioStream as; private ContinuousAudioDataStream continuousaudiostream; //static int length; public Audio(String filename) throws java.io.IOException { FileInputStream in = new FileInputStream(filename); as = new AudioStream(in); } public void play() { AudioPlayer.player.start(as); } public void stop() { AudioPlayer.player.stop(as); } }
Partager