I have made a media player in java using jmf which plays mp3,midi,mpeg1,mpeg2&avi.
How to play the mpeg4.Also i want to make a playlist for it which can add,delete and save the songs in the playlist.here is my code of media player.....

import javax.media.*;

import java.awt.*;
import java.awt.event.*;

class MediaPlayer extends Frame implements ActionListener,
                                           ControllerListener,
                                           ItemListener
{
   Player player;
   Component vc, cc;
   boolean first = true, loop = false;
   Image image;
   
   String currentDirectory;

   MediaPlayer (String title)
   {
      super (title);

      addWindowListener
                (new WindowAdapter ()
                 {
                     public void windowClosing (WindowEvent e)
                     {
                        // User selected close from System menu.
                        // Call dispose to invoke windowClosed.

                        dispose ();
                     }

                     public void windowClosed (WindowEvent e)
                     {
                        if (player != null)
                            player.close ();

                        System.exit (0);  
                     }
                 });

      Menu m = new Menu ("File");

      MenuItem mi = new MenuItem ("Open...");
      mi.addActionListener (this);
      m.add (mi);

      m.addSeparator ();

      CheckboxMenuItem cbmi = new CheckboxMenuItem ("Loop", false);
      cbmi.addItemListener (this);
      m.add (cbmi);

      m.addSeparator ();

      mi = new MenuItem ("Exit");
      mi.addActionListener (this);
      m.add (mi);

      MenuBar mb = new MenuBar ();
      mb.add (m);
      setMenuBar (mb);

      setSize (600, 200);

      setVisible (true);
   }

   public void actionPerformed (ActionEvent e)
   {
      if (e.getActionCommand ().equals ("Exit"))
      {
          // Call dispose to invoke windowClosed.

          dispose ();
          return;
      }

      FileDialog fd = new FileDialog (this, "Open File",
                                      FileDialog.LOAD);
      fd.setDirectory (currentDirectory);
      fd.show ();

      // If user cancelled, exit.

      if (fd.getFile () == null)
          return;

      currentDirectory = fd.getDirectory ();

      if (player != null)
          player.close ();

      try
      {
         player = Manager.createPlayer (new MediaLocator
                                           ("file:" +
                                            fd.getDirectory () +
                                            fd.getFile ()));
      }
      catch (java.io.IOException e2)
      {
         System.out.println (e2);
         return;
      }
      catch (NoPlayerException e2)
      {
         System.out.println ("Could not find a player.");
         return;
      }

      if (player == null)
      {
          System.out.println ("Trouble creating a player.");
          return;
      }

      first = false;

      setTitle (fd.getFile ());

      player.addControllerListener (this);
      player.prefetch ();
   }

   public void controllerUpdate (ControllerEvent e)
   {
     

      if (e instanceof ControllerClosedEvent)
      {
          if (vc != null)
          {
              remove (vc);
              vc = null;
          }

          if (cc != null)
          {
              remove (cc);
              cc = null;
          }

          return;
      }

      if (e instanceof EndOfMediaEvent)
      {
          if (loop)
          {
              player.setMediaTime (new Time (0));
              player.start ();
          }

          return;
      }

      if (e instanceof PrefetchCompleteEvent)
      {
          player.start ();
          return;
      }

      if (e instanceof RealizeCompleteEvent)
      {
          vc = player.getVisualComponent ();
          if (vc != null)
              add (vc);

          cc = player.getControlPanelComponent ();
          if (cc != null)
              add (cc, BorderLayout.SOUTH);

          pack ();
      }
   }

   public void itemStateChanged (ItemEvent e)
   {
      loop = !loop;
   }

   public void paint (Graphics g)
   {
      if (first)
      {
          int w = getSize ().width;
          int h = getSize ().height;

          //g.setColor (Color.black);
          //g.fillRect (0, 0, w, h);

          //Font f = new Font ("Swis721 BdOul BT" , Font.BOLD, 56);
          //g.setFont (f);
          image=new Image("E:/wallpapers/3D Wallpaper_Links.jpg");
          //FontMetrics fm = g.getFontMetrics ();
          //int swidth = fm.stringWidth ("jMedia+");
           image.getSource();
           
          //g.setColor (Color.green);
          //g.drawString ("jMedia+",
                       // (w - swidth) / 2,
                       // (h + getInsets ().top) / 2);
      }

     

      super.paint (g);
   }

  

   public void update (Graphics g)
   {
      paint (g);
   }

   public static void main (String [] args)
   {
      new MediaPlayer (" jMedia+ ");
   }
}

Edited 5 Years Ago by peter_budo: Keep It Clear - Do use code tags when posting any code

This article has been dead for over six months. Start a new discussion instead.