Mediaplayer ouvre et lit un fichier video (utilise les api jmf)

5/5 (40 avis)

Vue 28 410 fois - Téléchargée 82 421 fois

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 / Exemple :


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 ); } }

Codes Sources

A voir également

Ajouter un commentaire Commentaires
misterjoidf Messages postés 35 Date d'inscription jeudi 30 juin 2011 Statut Membre Dernière intervention 2 août 2011
2 août 2011 à 09:59
J'ai réussi à avancer, mais mon problème vient du format.

Je crée des vidéos en WMV, format non reconnu par le lecteur. J'ai téléchargé plusieurs logiciels pour convertir les fichiers mais je ne trouve pas un format qui passe, j'ai toujours un problème... Tu as une idée peut être ?
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
1 août 2011 à 23:14
Malheureusement l api n a pas beaucoup évoluée ;-( ...
misterjoidf Messages postés 35 Date d'inscription jeudi 30 juin 2011 Statut Membre Dernière intervention 2 août 2011
20 juil. 2011 à 09:40
Salut !

J'ai un bug avec le code, je bosse sous Eclipse, il m'écrit une suite de numéros dans la console et rien ne se passe....

Quelqu'un sait ce qu'il se passe ?
cs_micropoint Messages postés 12 Date d'inscription dimanche 21 novembre 2004 Statut Membre Dernière intervention 20 mars 2010
14 juin 2011 à 15:32
Bonjour à tous.
Pour tous ceux qui ont le problème :
"Unable to handle format: XXXXXX", c'est que le format lut n'est pas pris en compte par la JMF (qui ne gére pas grand chose d'ailleurs).

Je vous conseil de vous rendre sur :
http://www.oracle.com/technetwork/java/javase/formats-138492.html
pour prendre en compte les formats lut.

Sinon, allez sur
java.developpez.com/outils/api/ pour trouver de nouvelle api.

Cordialement

PS ; chez moi, les sons sont lu (en wav), le h263 dans du mpeg est compris, par contre, e n'ai aucune image. Esct-ce normal ?
B3NJ1 Messages postés 1 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 22 novembre 2010
22 nov. 2010 à 23:07
J'ai cette erreur lorsque je lance le programme :
Unable to handle format: MP42, 368x208, FrameRate=25.0, Length=229632 0 extra bytes
Unable to handle format: mpeglayer3, 44100.0 Hz, 0-bit, Stereo, Unsigned, 12000.0 frame rate, FrameSize=9216 bits
Failed to realize: com.sun.media.PlaybackEngine@309cbd4b
Error: Unable to realize com.sun.media.PlaybackEngine@309cbd4b

Je n'arrive donc pas à lire une vidéo. Quelqu'un peut m'aider ?
Afficher les 40 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.