Comment jouer du son dans une Applet
Bonjours je suis debutant dans les applet, je veux savoir comment on peut faire du son. j'est essayer sa :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
public class Montre extends Applet
{
AudioClip aud;
public void init()
{
aud = getAudioClip(getCodeBase(),"alarme.wav");
aud.play();
}
} |
mais sa marche pas, quelqu'un peux m'expliquer pourquoi sa marche pas et comment on fait naturelement.
Merci
comment faire du son dans une Applet
Bonjour,
Voici une classe que j'ai chopé sur le site et qui pourra t'aider à jouer une fichier audio simple (par exemple .wav)
Il se base sur AudioInputStream. Sauf qu'il faut l'adapter à l'Applet.
Voici la classe :
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 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
|
import java.io.*;
import javax.sound.sampled.*;
public class sound {
private AudioFormat format;
private byte[] samples;
public sound(String filename){
try{
AudioInputStream stream = AudioSystem.getAudioInputStream(new File(filename));
format = stream.getFormat();
samples = getSamples(stream);
}
catch (UnsupportedAudioFileException e){
e.printStackTrace();
}
catch (IOException e){
e.printStackTrace();
System.out.println("prob!");
}
}
public byte[] getSamples(){
return samples;
}
public byte[] getSamples(AudioInputStream stream){
int length = (int)(stream.getFrameLength() * format.getFrameSize());
byte[] samples = new byte[length];
DataInputStream in = new DataInputStream(stream);
try{
in.readFully(samples);
}
catch (IOException e){
e.printStackTrace();
}
return samples;
}
public void play(InputStream source){
int bufferSize = format.getFrameSize() * Math.round(format.getSampleRate() / 10);
byte[] buffer = new byte[bufferSize];
SourceDataLine line;
try{
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
line = (SourceDataLine)AudioSystem.getLine(info);
line.open(format, bufferSize);
}
catch (LineUnavailableException e){
e.printStackTrace();
return;
}
line.start();
try{
int numBytesRead = 0;
while (numBytesRead != -1){
numBytesRead = source.read(buffer, 0, buffer.length);
if (numBytesRead != -1)
line.write(buffer, 0, numBytesRead);
}
}
catch (IOException e){
e.printStackTrace();
System.out.println("prob2!");
}
line.drain();
line.close();
}
public static void main(String[] args)
{
sound player = new sound("son.wav");
InputStream stream = new ByteArrayInputStream(player.getSamples());
player.play(stream);
System.exit(0);
}
} |