Utilisation JMF application [Résolu]

Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
- - Dernière réponse : misterjoidf
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
- 20 juil. 2011 à 11:27
Bonjour à tous !

J'essaye de comprendre comment faire fonctionner un lecteur. L’objectif est de lire une vidéo dans mon application java. J'ai actuellement installé le JMF, puis j'ai placé les jai_codec.jar et jai_core.jar dans le dossier de mon projet.

J'ai actuellement un code que j'ai trouvé sur le net (ci-dessous) mais Eclipse ne reconnait pas les méthodes présentes dans javax.media (ControllerListener,MediaLocator)...

Quelqu'un peut m'aider car je suis dessus depuis 1 semaine et cela n'avance pas lourd

import java.awt.*;
import java.awt.event.*;
import javax.media.*;
import javax.swing.*;

public class LudoMediaPlayer extends JFrame implements  ControllerListener //, Runnable
{
    private boolean closing = false;
    private Player player = null;
    private JPanel videoPanel = null;
    
    /**
     * contructeur LudoMediaPlayer
     * necessite un fichier de film en argument 
     * 
     */
    public LudoMediaPlayer( String nomFilm )
    {
        super();
        setLocation( 200, 400 );
        setTitle("Ludo player ;o) ");
        getContentPane().setLayout( new BorderLayout() );
        //  met en place la methode de sortie de laplication
        addWindowListener( new WindowAdapter()
            {   // la c vrai : je ne fai pas dans le detail ;o)
                public void windowClosing( WindowEvent we ) { System.exit(0); }
            }
                         );
        if ( nomFilm != null)
            loadMovie( nomFilm ); // charge le film
    }

    /**
     * methode de chargement du film a partir de son url
     * dans le player
     */
    private void loadMovie( String movieURL )
    {
        if ( movieURL.indexOf( ":" ) < 3 ) movieURL = "file:" + movieURL;
        try
        {   // creation du player
            player = Manager.createPlayer( new MediaLocator( movieURL ) );
            player.addControllerListener( this ) ; // puisque quee on l implement
            player.realize();
        }
        catch (Exception e)
        {
            System.out.println("Error creating player");
            return;
        }
    }
    
    /**
     * intercep tout les evenement en provenence du player
     * voir dans le package la liste complete des event et leur declencheurs... ;o)
     * @see javax.media.ControllerListener#controllerUpdate(ControllerEvent)
     */
    public void controllerUpdate( ControllerEvent ce )
    {  
        
        if ( ce instanceof RealizeCompleteEvent )
        {   // demarage de la video 
            if ( videoPanel == null)
            {   //creation du panel de vue
                videoPanel = new JPanel();
                videoPanel.setLayout( new BorderLayout() );
                getContentPane().add( videoPanel, BorderLayout.CENTER );
            }   
            else
                videoPanel.removeAll();
            // obtention du composent restituan l image en provenence du player
            Component vis = player.getVisualComponent();
            if ( vis != null )
            {   // si valide alors on la met ds notre vue
                videoPanel.add( vis, BorderLayout.CENTER );
                videoPanel.setVisible(true);
                this.pack(); // resize la taille en fct de la taille du film
            }
            player.start(); // lance la video
        }
        else if ( ce instanceof EndOfMediaEvent )
        {
            if (player != null)
            {   // rembobine le film
                player.setMediaTime(new Time(0));
                if (player.getTargetState() < Player.Started)
                    player.prefetch();
                // relance le film
                player.start();
            }
        }
    }

    public static void main( String[] args )
    {   // reclame   l URL d un film : AVI , MPG ...
        new LudoMediaPlayer( args[ 0 ] ).setVisible( true );
    }
    
}


Peut être ferai je mieux de repartir à zéro, si quelqu'un connait ce truc...

Merci d'avance !
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
3
Merci
Il me manquait une librairie externe dans le projet... maintenant faut que je trouve le moyen de prendre une vidéo non pas avec un URL mais avec un chemin, car les vidéos seront en local...

Merci en tout cas
Je devrai demander à mon DG de te rémunérer lol

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de misterjoidf
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
246
0
Merci
Bonjour,

Je ne connais pas le package javax.media mais il ne doit pas être par défaut dans le jre, il faut donc que tu l'ajoutes au build path de ton projet.
Commenter la réponse de cs_Julien39
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Oui me le hic c'est que je pense lavoir fait. J'ai téléchargé l'API JMF, que j'ai installé puis j'ai ajouté deux .jar en librairie à mon projet le jai_core.jar et le jai_codec.jar...

Ou alors il manque une étape... ?
Commenter la réponse de misterjoidf
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
246
0
Merci
Alors, je ne vois pas ce qui ne va pas. Si tous les jars sont là, ca devrait fonctionner. Il n'y a pas d'erreur dans le build path ? Elles sont signalées avec un carré rouge sur l'icone du jar si c'est le cas
Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
246
0
Merci
Juste une vérification ; quand tu dis

jai_codec.jar et jai_core.jar dans le dossier de mon projet.


Le "dossier" est bien le build path : click droit sur le projet puis build path et configure. Et add External jar ?
Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
246
0
Merci
Peux tu lister les libraires que tu as ajouté à ton projet (c'est juste au cas ou quelqu'un aurait le même problème que toi)

Bon courage pour la suite
Commenter la réponse de cs_Julien39
Messages postés
35
Date d'inscription
jeudi 30 juin 2011
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
J'écrirai un truc complet quand j'y serai arrivé ! Là il ne trouve pas le media player lol

J'ai jamais été aussi près...
Commenter la réponse de misterjoidf