IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Multimédia Java Discussion :

[JMF] Code fonctionnant sous Linux mais pas sous XP


Sujet :

Multimédia Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [JMF] Code fonctionnant sous Linux mais pas sous XP
    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);
    }
    }
    }
    ___________________________________

  2. #2
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 139
    Points
    139
    Par défaut
    Si tes fichiers sonores sont tous des wav alors tu n'as pas besoin de la JMF. Tu peux lire des fichiers wav depuis java standard, de la tres simple facon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Applet.newAudioClip(url_de_ton_fichier).play();

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je comprends bien, mais le but est de pouvoir utiliser l'API JMF, y compris pour pouvoir supporter d'autres formats.

    Merci quand même de ta réponse bourbaki

  4. #4
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 139
    Points
    139
    Par défaut
    OK.
    As tu essaye de lancer le JMFStudio sous XP?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Alors, je viens de le compiler et de le lancer en incluant jmf.jar dans le classpath.

    Le résultat reste le même quand j'essaye d'ouvrir un fichier .wav standard, l'initialisation a l'air de se dérouler correctement, mais la lecture ne dure qu'une demi-seconde pour se mettre en pause et planter après...

    Je suis maudit je crois !

    Bon, plus sérieusement, y a til possibilité de créer une application avec JMF entierement multi-plateforme sans avoir à passer par des librairies natives ?
    J'ai comme l'impression qu'il manque un truc à JMF sous windows, pour bien fonctionner. ( je reprecise que sous linux, le code fonctionne parfaitement )

    Voilà ce qu'il y a dans le repertoire de mon appli :
    -le jar : jmf.jar
    -la source : JMFSound.java ( voir 1er post )
    -le class : JMFSound.class
    -le script linux : launch.sh ( code: java -cp jmf.jar:. JMFSound )
    -le script win : launch.bat ( code: java -classpath jmf.jar;. JMFSound )

    Moi pas comprendre ...

Discussions similaires

  1. [LibreOffice][Tableur] Une macro qui fonctionne sous Linux mais pas sous windows
    Par ludox62 dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 07/01/2014, 21h26
  2. [Prob] code qui fonctionne sous windows mais pas sous linux
    Par hannibal.76 dans le forum Multimédia
    Réponses: 3
    Dernier message: 07/02/2011, 17h46
  3. Script qui marche sous Linux mais pas sous Windows et vice versa
    Par tu-phat dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 26/11/2009, 02h39
  4. Mon fichier gtkrc fonctionne sous windows mais pas sous Linux !
    Par Kicker dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 24/04/2009, 12h54
  5. Réponses: 5
    Dernier message: 13/04/2009, 23h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo