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

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

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.