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);
 
  }
 
}