Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MEDIAPLAYER OUVRE ET LIT UN FICHIER VIDEO (UTILISE LES API JMF)


Information sur la source

Catégorie :Api Niveau : Initié Date de création : 22/11/2003 Vu / téléchargé: 14 081 / 80 856

Note :
9 / 10 - par 4 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (35)
Ajouter un commentaire et/ou une note

Description

c est tous simple un player qui tourne en boucle et utilise le plus simplement les API de la librairie jmf c un bon debut pour faire meiux
personnelement c est le genre d exemple qui m a manquer qd j ai commencer a me servir de jmf... ;o)

good prog ...

 

Source

  • import java.awt.*;
  • import java.awt.event.*;
  • import javax.media.*;
  • import javax.swing.*;
  • /**
  • * Creer le 19 nov. 2003
  • *
  • * @author ludo
  • */
  • 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 );
  • }
  • }
import java.awt.*;
import java.awt.event.*;
import javax.media.*;
import javax.swing.*;

/**
 * Creer le 19 nov. 2003
 * 
 * @author ludo
 */
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 );
    }
    
}

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de era le 23/11/2003 10:54:06

c cool come moi on avance pas des masses avec ca
je cherche a lire des divx et autre codec donc comment lui faire charger les codecs
et surtout suivant les plateforme

je me tape la doc complete + le source de la jmf mais ca m aide pas des masses

PS moi je travaille sur la jmf 2.1.1c est ce ca le prob?

signaler à un administrateur
Commentaire de GodConan le 23/11/2003 11:14:17

j avoue que je ne suis pas pencher sur ce genre de problemme ;o)
moi il digere tous les film que je lui est donner mai ce sont des AVI de base et des MPG
Je rgarderai peut etre ;o) mais je doit dire que c pas trop dans mes preoccupation actuel sorry ...

GL

++

signaler à un administrateur
Commentaire de neodante le 25/11/2003 18:35:00 administrateur CS

En fait si tu regardes la doc de Sun sur leur site, tu découvriras tous les formats gérés par le JMF malheuresement ni le MP3 et encore moins le DivX ne sont accessible. Pour ce qui est de charger des drivers je suis tout ouie d'entredre la solution...
Sinon le code est clair et ça donne une bonne idée de l'implémentation d'un mediaplayer (pour les formats supportés ! ;-))
@+

signaler à un administrateur
Commentaire de GodConan le 25/11/2003 19:02:17

quel ;o) chipoteur ;o) bon c vrai que ta eu une journee pourrri [;)] ;o)

++

signaler à un administrateur
Commentaire de neodante le 25/11/2003 23:35:12 administrateur CS

Je vais dormir ... demain je devrais être de meilleur humeur ....
@+

signaler à un administrateur
Commentaire de lolo0931 le 05/02/2004 19:11:03

Le code donne un bon point de départ ;) mais je cherche aussi des infos sur la manière d'intégrer de nouveaux codecs... si quelqu'un avait un tuyau ? :):):)

signaler à un administrateur
Commentaire de GodConan le 05/02/2004 20:01:17

No, perso je sais deja a peine ce qu est un CODEC ;o) hhéhé  donc sorry ;o) peut pas t aider ;o)...


++

signaler à un administrateur
Commentaire de neodante le 06/02/2004 09:52:32 administrateur CS

Ce n'est pas en Java que tu feras un CODEC (Coder/Decoder pour GodConan lol !!!) plutôt en C ...
@+

signaler à un administrateur
Commentaire de lyes22 le 10/02/2004 10:43:24

j'arive pas a compile ce code sources un message d'erreur qui afiche
de type : java.lang.ArrayIndexOutOfBoundsException

at projet2.LudoMediaPlayer.main(LudoMediaPlayer.java:117)

Exception in thread "main"

signaler à un administrateur
Commentaire de GodConan le 10/02/2004 23:52:41

vi ben c parceque il faut un argument  ;o)


tu doit donner un nom de fichier film en argument  au programe ...


;o) b"n vi c un exemple g pas fait tous les test ......... ;o)

signaler à un administrateur
Commentaire de lyes22 le 14/02/2004 12:32:36

asq te peut me donner un coup de main pour realiser un multicast (multipoint) en utlilisant L'API JMF
car je veu transmettre la video (de la capteur Web Cam) et le sond pour pluseur client en meme temp

et merci d'avonce

signaler à un administrateur
Commentaire de lyes22 le 14/02/2004 12:33:06

asq te peut me donner un coup de main pour realiser un multicast (multipoint) en utlilisant L'API JMF
car je veu transmettre la video (de la capteur Web Cam) et le sond pour pluseur client en meme temp

et merci d'avonce

signaler à un administrateur
Commentaire de GodConan le 15/02/2004 02:23:26

;o) ouai javai ompri au premier message  ;o)meme si c encor plus mal ecri que ce que je peu produire..... ;o)


mais la no, chui vraiment Over booker ;-( g deja 2 prog en retard ;-(

de + je ne suis vraiment pas un expert des jmf ;-(....... sorry

++

signaler à un administrateur
Commentaire de lyes22 le 16/02/2004 10:02:11

merci beaucoup essentiel si ta un document sue le multicast en utilisant le jmf n'esite pas a me le dire

signaler à un administrateur
Commentaire de Trin le 15/03/2004 15:13:28

Salut, je voudrais tout simplement afficher (en JMF) dans une fenêtre le flux vidéo de ma webcam ...
Si quelqu'un a un exemple ou une idée ... merci !

à plus

signaler à un administrateur
Commentaire de GodConan le 15/03/2004 18:23:06

demande sur un forum ;o) moi la je voi pas sorry

... ;o)

signaler à un administrateur
Commentaire de neodante le 15/03/2004 19:06:43 administrateur CS

Exemple de SUN dispo sur le net ..... j'en dit pas plus ....
@+

signaler à un administrateur
Commentaire de GodConan le 15/03/2004 19:17:50

ben voila  ;o) finalement meme ds les source sa marche ;o)

signaler à un administrateur
Commentaire de Shamamatt le 13/07/2004 18:22:25

Salut !
J'ai utilise ce code que j'ai modifie pour rajouter differents boutons etc... mais je n'arrive pas a faire un slider ki avance en meme temps ke la video...
tu peux voir la source a cette adresse :

http://www.javafr.com/code.aspx?ID=24523

voila...

signaler à un administrateur
Commentaire de GodConan le 14/07/2004 01:00:32

sorry ;o) mais pendant les vacance je fait ke lire les forum ;o)

signaler à un administrateur
Commentaire de neodante le 14/07/2004 11:21:23 administrateur CS

T'as du bol d'avoir des vacances toi !!!! Moi je bosse .... sniff
@++

signaler à un administrateur
Commentaire de GodConan le 14/07/2004 11:49:07

ouai ben fau bien s arreter 'un peu' de temp en temp ;o)... (enfin la FALLAI...)  

signaler à un administrateur
Commentaire de neodante le 14/07/2004 15:29:44 administrateur CS

OK lol ... moi j'aimerais bien arrêter ... mais bon fais chier les projets ... quand on commence ... faut terminer !!!
Donc le prochain coup je prendrais des vacances pour ne pas travailler pendant ! lol
@+

signaler à un administrateur
Commentaire de pascaliut le 25/02/2005 15:24:59

J ai compiler ce fichier de .java -> .class
Mais je ne peut pas exécuter:

> java LudoMediaPlayer.class

Exception in thread "main" java.lang.NoClassDefFoundError: LudoMediaPlayer/class

ca viens pour tous les programmes java qui utilisent JMF! Comment fais marcher ce prog?


signaler à un administrateur
Commentaire de GodConan le 26/02/2005 09:50:46

il te faut installer le package JMF avant de pouvoir compiler le projet...

Enfin l inserer ds les proprieté du projet suffi si tu utilise Eclipse comme EDI (par exemple)

++

signaler à un administrateur
Commentaire de hb566 le 08/10/2005 14:54:46

moi aussi  j'ai le prob:
Exception in thread "main" java.lang.NoClassDefFoundError: LudoMediaPlayer/class

alors que j'ai ajouter l'api JMF dans la properiete de mon JBuilder 5
pouvez vous m'aider.
merci
@+

signaler à un administrateur
Commentaire de GodConan le 08/10/2005 22:29:14

desole ;-( mais JB je ne connai vraiment pas surtou le 5 ;o)

++

signaler à un administrateur
Commentaire de thenaoh le 08/03/2006 21:48:48

Bonjour !

J'ai testé ton code et il marche impeccable et en plus relativement simple ! Merci beaucoup, c'est tout à fait ce que je cherchais !!

J'ai cependant une petite question : j'ai pu le faire fonctionner car j'avais installé le jmf pour windows dispo sur le site de sun. Est-il possible avec Eclipse (et si oui, comment?) d'intégrer le jmf dans son projet, sans avoir à l'installer ?? (mon but étant de pouvoir faire fonctionner le player sur n'importe quelle bécane, sans avoir à installer jmf au préalable...)

Merci par avance ! :-)

signaler à un administrateur
Commentaire de SayenVegeta le 01/05/2006 17:34:55

salut a tous
le code marche tres bien et ca tombe bien , je voulai faire un petit programme pour ma niece qui lance une video quand elle tape sur le clavier, ca me donne le depart pour mon programme parce que j avais la flemme de commencer
merci GodConan

signaler à un administrateur
Commentaire de dokoeur le 17/05/2006 18:51:04

Salut
merci pour ce code qui me sert dans mon appli, cependant j'ai un problème et je n'arrive pas a le résoudre.

A chaque fois que j'ouvre un fichier, j'ai l'erreur Unable to handle format, j'ai pourtant essayer avec plusieur format et toujours la mm erreur, en fait il ne lit que le son mais j'ai aucune video. Je voulais ssavoir si quelqu'un savait de quoi ca venait.
Merci d'avance

signaler à un administrateur
Commentaire de amelA le 26/05/2007 04:05:37

Bonjour,
J'ai essayé ce code et il fonctionne très bien. Seulement dans  une application client/serveur, comment charger une vidéo qui se trouve sur le serveur?
merci.

signaler à un administrateur
Commentaire de GodConan le 23/06/2007 10:46:10

je ne suis pas expert de la prog web mais si tu lui donne l URL ca doit pas poser de soucis normalement... !!?

signaler à un administrateur
Commentaire de amelA le 23/06/2007 21:04:12

Bonjour,
effectivement, ça marche, seulement quand l'URL est de type: ftp://@.... et que le ftp est sécurisé par un login et mot de passe, il demande d'abord une identification (login, mot de passe).
je vais poster ailleurs.
merci.

signaler à un administrateur
Commentaire de yannd0307 le 13/02/2008 11:47:16

Bonjour,
J'ai essayé d'exécuter votr code, mais il me retourne une erreur quand j'essaie de lire une
vidéo avi toute simple :

" Unable to handle format: MP42, 320x233, FrameRate=12.0, Length=223680 0 extra bytes
Failed to realize: com.sun.media.PlaybackEngine@14f8dab
Error: Unable to realize com.sun.media.PlaybackEngine@14f8dab
"

Malgré de nombreuses recherches sur le net, je ne trouve pas de solution. Apparemment, cela viendrait du fait qu'il ne trouve pas les Codecs?!?

Si quelqu'un pouvait me donner une piste, merci :).

Cordialement.

signaler à un administrateur
Commentaire de girl777 le 12/05/2008 11:37:11

Bonjour tout le monde !

Merci pour toutes vos informations !!!

J'ai réalisé un player vidéo fonctionnel. Il possède un bouton play, pause, stop ainsi qu'une barre de progression pour le temps.

Jusque là, pas de souci :-) Cependant, je souhaiterais lui ajouter un bouton pour gérer le volume et cela fait des heures que je cherche sans résultat.
De plus, j'aimerais également pouvoir afficher le temps courant. J'ai fait une boucle "infinie", cela fonctionne mais ne me semble pas optimal.

D'avance, je vous remercie infiniment pour votre aide !

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.