Bonjour,

j'ai récupéré ce code sur un site

Code java : 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
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
 
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();
		}
	}
 
	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){
		// 100 ms buffer for real time change to the sound stream
		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();
		}
		line.drain();
		line.close();
	}
 
	public static void main(String[] args){
		sound player = new sound("sons/t.wav");
		InputStream stream = new ByteArrayInputStream(player.getSamples());
		player.play(stream);
		System.exit(0);
	}
}


Le message d'erreur qui apparait est:
Exception in thread "main" java.lang.NullPointerException

Donc je crois qu'il ne trouve pas le .wav
alors quil est dans le repetoire sons qui est lui dans un répertoire qui contient la classe sound.

J'ai essayé plusieurs choses :
*enlever le répertoire sons (mettre directement "à coté" de sound.java)
*mettre dans la racine
*le mettre partout
*...

mais toujours le même message d'erreur. Je ne sais plus quoi faire.

J'ai une autre question en passant:
Quelles sont les différences entre cette méthode et l'applet?

J'ai essayé l'applet, ça ne marchait pas aussi.

Merci.