Как воспроизвести видео в Java-приложении, используя качели через JMF - PullRequest
0 голосов
/ 19 марта 2011

Я уже установил JAR-файлы JMF ... и JMStudio ..
мой код ...

package medical.service;

// 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;
import com.sun.media.PlaybackEngine;

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



package medical.service;
import java.net.MalformedURLException;
import java.net.URL;
import com.sun.media.PlaybackEngine;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MediaTest
{


    // launch the application
    public MediaTest(){
     // 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 );
            //JPanel buttonPanel=new JPanel();

            MediaPanel mediaPanel = new MediaPanel( mediaURL );
            mediaTest.add( mediaPanel );

            mediaTest.setSize( 300, 300 );
            mediaTest.setVisible( true );
         } // end inner if


      } // end outer if
    }
} // end class MediaTest


package medical.runner;
import medical.service.MediaTest;
import com.sun.media.PlaybackEngine;
public class Runner {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    MediaTest mediatest=new MediaTest();

}

}

но этот код не работает ... этот код вызывает исключение

" "Could not realize media player" "
...