# JMF spielt keine Videos ab



## Ager (28. Feb 2012)

Hi,

Ich wollte mal ein Video Player in mein Programm einfügen erstmal wolte ich testen wie das überhaupt geht. Habe mir von Oracle die Libaries heruntergeladen und Eclipse hinzugefügt. 


```
// Fig 21.6: MediaPanel.java
// A JPanel the plays media from a URL
import java.awt.BorderLayout;
import java.awt.Component;
import java.io.IOException;
import java.net.URL;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.swing.JPanel;

public class MediaPanel extends JPanel
{
   public MediaPanel( URL mediaURL )
   {
      setLayout( new BorderLayout() ); // use a BorderLayout
      
      // Use lightweight components for Swing compatibility
      Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true );
      
      try
      {
         // create a player to play the media specified in the URL
         Player mediaPlayer = Manager.createRealizedPlayer( mediaURL );
         
         // get the components for the video and the playback controls
         Component video = mediaPlayer.getVisualComponent();
         Component controls = mediaPlayer.getControlPanelComponent();
         
         if ( video != null ) 
            add( video, BorderLayout.CENTER ); // add video component

         if ( controls != null ) 
            add( controls, BorderLayout.SOUTH ); // add controls
         
         mediaPlayer.start(); // start playing the media clip
      } // end try
      catch ( NoPlayerException noPlayerException )
      {
         System.err.println( "No media player found" );
      } // end catch
      catch ( CannotRealizeException cannotRealizeException )
      {
         System.err.println( "Could not realize media player" );
      } // end catch
      catch ( IOException iOException )
      {
         System.err.println( "Error reading from the source" );
      } // end catch
   } // end MediaPanel constructor
} // end class MediaPanel
```


```
// Fig. 21.7: MediaTest.java
// A simple media player
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JFileChooser;
import javax.swing.JFrame;

public class MediaTest
{
   // launch the application
   public static void main( String args[] )
   {
      // create a file chooser
      JFileChooser fileChooser = new JFileChooser();
      
      // show open file dialog
      int result = fileChooser.showOpenDialog( null );

      if ( result == JFileChooser.APPROVE_OPTION ) // user chose a file
      {
         URL mediaURL = null;
         
         try
         {
            // get the file as URL
            mediaURL = fileChooser.getSelectedFile().toURL();
         } // end try
         catch ( MalformedURLException malformedURLException )
         {
            System.err.println( "Could not create URL for the file" );
         } // end catch

         if ( mediaURL != null ) // only display if there is a valid URL
         {
            JFrame mediaTest = new JFrame( "Media Tester" );
            mediaTest.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
            
            MediaPanel mediaPanel = new MediaPanel( mediaURL );
            mediaTest.add( mediaPanel );
            
            mediaTest.setSize( 300, 300 );
            mediaTest.setVisible( true );
         } // end inner if
      } // end outer if
   } // end main
} // end class MediaTest
```

Der Player funktioniert und er gibt auch Ton ab, aber Leider kann ich keine AVI Datei abspielen es bleibt bei einen Grauen Bildschirm. Habs auch mit andren Formaten versucht geht auch leider nicht. 

In der Console steht dann dies:
  Unable to handle format: TSCC, 640x480, FrameRate=15.0, Length=1843200 0 extra bytes
  Unable to handle format: LINEAR, 22050.0 Hz, 16-bit, Mono, LittleEndian, Signed, 44100.0 frame rate, FrameSize=16 bits

lg
Ager


----------



## Kr0e (1. Mrz 2012)

JMF kann nur ein paar wenige Codecs handeln. Dabei geht es nicht um den Container (AVI) sondern um den verwendeten Codec. JMF ist absoluter Mist. Veraltet, nicht mehr weiterentwickelt und unterstützt kaum Codecs.

Besser VLCj oder GSTreamer-Java. Damit kannst du alles abspielen und das auch bei einer vernünfigen Perfromance


----------



## Ager (4. Mrz 2012)

Weißt du vieleicht welchen codec ich dafür brauche weil mit VLCJ komme ich nicht weiter. Und wie ich den einsetzen kann ?


----------

