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
| import java.io.File;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
public class WavPlayer
{
public static AudioInputStream audioStream = null;
public static SourceDataLine line = null;
private AudioFormat audioFormat = null;
public WavPlayer(File f) throws Exception
{
// recuperation d'un stream de type audio sur le fichier
/** En théorie, pour lire un fichier son, il faut lire le contenu du fichier et
* l'écrire sur la ligne qu'on a créer avec les paramètres qui vont bien.
* Pour la capture, on lit depuis la ligne qui va bien et on écrit dans un flux
* sortant */
audioStream = AudioSystem.getAudioInputStream(f);
// recuperation du format de son
audioFormat = audioStream.getFormat();
System.out.println(audioFormat);
// recuperation du son que l'on va stoquer dans un objet de type SourceDataLine
DataLine.Info info = new DataLine.Info(SourceDataLine.class,audioFormat);
try
{
// recuperation d'une instance de type SourceDataLine
line = (SourceDataLine) AudioSystem.getLine(info);
}
catch (LineUnavailableException e)
{
e.printStackTrace();
}
}
/**
* Ouverture du flux audio
* @return On retourne <code>false</code> si il y a eu une erreure
*/
public boolean open()
{
try
{
line.open(audioFormat);
}
catch (Exception e)
{
e.printStackTrace(); //pour le debugage
return false;
}
return true;
}
/**
* Fermeture du flux audio
*/
public void close()
{
line.close();
}
/**
* On joue le son
*/
public void play()
{
MonThread t = new MonThread();
t.start();
System.out.println("test\n");
}
/**
* On arrete le son
*/
public void stop()
{
line.stop();
}
public static void main(String [] args)
{
try {
WavPlayer wp = new WavPlayer(new File("C:\\Documents and Settings\\administrateur\\Bureau\\alarme.wav"));
wp.open();
wp.play();
Thread.sleep(100); // fait patienter 0.1 seconde
// int i = 0;
/** while(i <= 10){
Thread.sleep(1000); // fait patienter une seconde
System.out.println(i);
i++;
}*/
wp.stop();
wp.close();
System.out.println("\ndebug0");
}
catch (Exception e)
{
e.printStackTrace();
}
}
} |
Partager