JMF

Résolu
cs_Spunk62 Messages postés 12 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 15 mai 2010 - 10 nov. 2009 à 17:43
cs_Spunk62 Messages postés 12 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 15 mai 2010 - 10 nov. 2009 à 18:26
Bonjour a tous,

J'aimerai grâce a l'api jmf créer un lecteur multimédia, j'ai réussi a lire des fichiers mp3 mais quand je veut lire un fichier de type avi j'ai cette erreur:

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

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

public class MediaPlayerDemo extends JFrame {
   private Player lecteur;
   private File fichier;

   public MediaPlayerDemo()
   {
      super( "Démonstration du Java Media Player" );

      JButton ouvrirFichier = new JButton( "Ouvrir le fichier à lire" );
      ouvrirFichier.addActionListener(
         new ActionListener() {
            public void actionPerformed( ActionEvent e )
            {
               ouvrirFichier();
               creerLecteur();
            }
         }
      );
      getContentPane().add( ouvrirFichier, BorderLayout.NORTH );

      setSize( 300, 300 );
      show();
   }

   private void ouvrirFichier()
   {      
      JFileChooser choixDeFichier = new JFileChooser();

      choixDeFichier.setFileSelectionMode(
         JFileChooser.FILES_ONLY );
      int resultat = choixDeFichier.showOpenDialog( this );

      // Utilisateur clique sur le bouton Annuler dans le dialogue.
      if ( resultat == JFileChooser.CANCEL_OPTION )
         fichier = null;
      else
         fichier = choixDeFichier.getSelectedFile();
   }

   private void creerLecteur()
   {
      if ( fichier == null )
         return;

      retirerLecteurPrecedent();

      try {
         // Creer un nouveau lecteur et ajouter un �couteur.
         lecteur = Manager.createPlayer( fichier.toURL() );
         lecteur.addControllerListener( new GestionnaireEvenement() );
         lecteur.start();  // D�marrage du lecteur.
      }
      catch ( Exception e ){
         JOptionPane.showMessageDialog( this,
            "Fichier ou emplacement invalide", "Chargement du fichier"+
             " erroné",JOptionPane.ERROR_MESSAGE );
      }
   }

   private void retirerLecteurPrecedent()
   {
      if ( lecteur == null )
         return;

      lecteur.close();

      Component visuel = lecteur.getVisualComponent();
      Component controle = lecteur.getControlPanelComponent();

      Container c = getContentPane();
     
      if ( visuel != null )
         c.remove( visuel );

      if ( controle != null )
         c.remove( controle );
   }

   public static void main(String args[])
   {
      MediaPlayerDemo application = new MediaPlayerDemo();

      application.addWindowListener(
         new WindowAdapter() {
            public void windowClosing( WindowEvent e )
            {
               System.exit(0);
            }
         }
      );
   }

   // Classe interne pour gérer les événements du lecteur multimédia.
   private class GestionnaireEvenement implements ControllerListener {
      public void controllerUpdate( ControllerEvent e ) {
         if ( e instanceof RealizeCompleteEvent ) {
            Container c = getContentPane();
         
            // Charger les composants visuel et contr�les s�ils existent.
            Component composantVisuel =
               lecteur.getVisualComponent();

            if ( composantVisuel != null )
               c.add( composantVisuel, BorderLayout.CENTER );

            Component composantControles =
               lecteur.getControlPanelComponent();

            if ( composantControles != null )
               c.add( composantControles, BorderLayout.SOUTH );

            c.doLayout();
         }
      }
   }
}

j'ai récupérer cette source.
je voudrais donc pouvoir lire des fichier avi, j'ai vue que sur le site de sun la jmf devrait les prends en compte.
pouvez-vous m'aidez merci.

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 nov. 2009 à 18:06
Salut,

Tout dépend les codecs utilisés : JMF est très limité dans les codecs reconnus (as de DivX par exemple...).

Je te conseille d'utiliser une extension native de JMF pour gérer les codecs non reconnus par JMF, tel que Fobs4JMF par exemple.
______________________________________
DarK Sidious
3
cs_Spunk62 Messages postés 12 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 15 mai 2010
10 nov. 2009 à 18:26
Merci sa fonctionne très bien !
0
Rejoignez-nous