Salut j'essaie de faire un petit jeux qui requiert de jouer du son, j'ai beaucoup cherché, j'ai trouvé l'outil JMF, seulement le problème c'est en Eclipse l'audio se joue normal, et après exportation en JAR, plus de son !! voila mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
File f =new File(Main.class.getResource("/data/x.mp3").getFile());
final Player p=Manager.createRealizedPlayer(f.toURI().toURL());
		p.start();
 
 
		while(true){
			if(p.getMediaTime().getSeconds()==p.getDuration().getSeconds()){
				p.stop();
				p.setMediaTime(new Time(0));
				p.start();
			}
		}

PS: le fichier MP3 est bien inclus dans le JAR, l'application se lance bel et bien, il n y a QUE la musique qui marche pas !



On m'a recommandé d'utilier un fichier temporaire pour extraire le fichier audio du jar et l'utiliser, mon code devient alors :

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
 
InputStream is = Main.class.getClass().getResourceAsStream("/data/x.mp3");
		File temp=File.createTempFile("temp", ".mp3");
		OutputStream os = new FileOutputStream(temp);
		int read = 0;
		byte[] bytes = new byte[1024];
 
		while ((read = is.read(bytes)) != -1) {
			os.write(bytes, 0, read);
		}
 
		final Player p=Manager.createRealizedPlayer(temp.toURI().toURL());
		p.start();
 
 
		while(true){
			if(p.getMediaTime().getSeconds()==p.getDuration().getSeconds()){
				p.stop();
				p.setMediaTime(new Time(0));
				p.start();
			}
		}
et là j'ai une erreur en Eclipse même avant d'exporter le tout, qui est la suivante :
Error: Unable to realize com.sun.media.amovie.AMController@8c2d23
Exception in thread "main" javax.media.CannotRealizeException
at javax.media.Manager.blockingCall(Manager.java:2005)
at javax.media.Manager.createRealizedPlayer(Manager.java:528)
at tp.Main.main(Main.java:44)


j'ai vraiment essayé beaucoup beaucoup de sollutions, à chaque fois j'ai une erreur ! j'ai aussi essayé de jouer le morceau avec JLayer, qui reste pire ...
SOS ça fais 3 jours que je cherche la sollution !!