Bonjour à tous, premier post ici, et évidemment c'est pour appeler à l'aide !
Je bosse actuellement sur un petit projet sympathique multi-plateforme comprenant une partie de production sonore. Après avoir testé plusieurs API, j'en suis venu à me tourner vers JMF. Pour me faire la main, j'ai fais un copier-coller sauvage d'un bout de code trouvé sur le net. L'appli se contente d'ouvrir une boîte de dialogue de selection de fichier puis le joue.
Sous linux, cela marche impeccablement bien. Cependant, comme le titre de mon thread le stipule, sous windows XP, le resultat n'est pas au rendez vous. Tout ce que j'entends est un "CLIC" au départ du son, puis plus rien. A noter que le système detecte apparemment plus ou moins correctement le début et la fin du fichier. J'ai testé ce bout de code sur 3 pc sous XP et le résultat est identique.
plus d'infos:
-Je n'ai utilisé que le jmf.jar multi-plateforme, pas de performance pack
-Le fichier choisi est un WAV de base.
-Je n'ai pas défini de classpath sur le système, le jmf.jar etant fourni avec le soft et le classpath etant correctement défini au moment du l'appel java ( de toute façon, cel a fonctionne impeccablement sous Linux et je n'ai pas d'exceptions )
Si je viens donc à vous, c'est donc pour savoir si vous connaissez la cause de ce problème un peu tracassant quand même. Je vous en remercie par avance et compte sur votre érudition!
( j'ai fini de cirer les pompes )
--------------------------------------
Maxime - Paris . France
Bout de Code:
_______________________________________
___________________________________
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50 import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import javax.media.*; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JOptionPane; public class JMFSound extends Object implements ControllerListener { File soundFile; JDialog playingDialog; public static void main (String[] args) { JFileChooser chooser = new JFileChooser(); chooser.showOpenDialog(null); File f = chooser.getSelectedFile(); try { JMFSound s = new JMFSound (f); } catch (Exception e) { e.printStackTrace(); } } public JMFSound (File f) throws NoPlayerException, CannotRealizeException, MalformedURLException, IOException { soundFile = f; // prepare a dialog to display while playing JOptionPane pane = new JOptionPane ("Playing " + f.getName(), JOptionPane.PLAIN_MESSAGE); playingDialog = pane.createDialog (null, "JMF Sound"); playingDialog.pack(); // get a player MediaLocator mediaLocator = new MediaLocator(soundFile.toURL()); Player player = Manager.createRealizedPlayer (mediaLocator); player.addControllerListener (this); player.prefetch(); player.start(); playingDialog.setVisible(true); } // ControllerListener implementation public void controllerUpdate (ControllerEvent e) { System.out.println (e.getClass().getName()); if (e instanceof EndOfMediaEvent) { playingDialog.setVisible(false); System.exit (0); } } }
Partager