Сделайте ваши собственные Java Media Player для воспроизведения мультимедийных

Этот совет Java Swing иллюстрирует способ программирования собственное Java Media Player для воспроизведения мультимедийных файлов. Java Media Framework Player принципиально скрыто мультимедийный компонент, который обеспечивает контроль государственных переходам во время воспроизведения. JMF игроки предоставляют методы запроса текущего состояния, приобретать необходимые ресурсы, и для запуска, остановки, а также контролировать фактическое воспроизведения мультимедийного файла или потока.


import java.awt.*;

import java.awt.event.*;

import java.io.*;

import javax.swing.*;

import javax.media.*;



public class MediaPlayerDemo extends JFrame {

   private Player player;

   private File file;



   public MediaPlayerDemo()

   {

      super"Demonstrating the Java Media Player" );



      JButton openFile = new JButton"Open file to play" );

      openFile.addActionListener(

         new ActionListener() {

            public void actionPerformedActionEvent e )

            {

               openFile();

               createPlayer();

            }

         }

      );

      getContentPane().addopenFile, BorderLayout.NORTH );

  

      setSize300300 );

      show();

   }



   private void openFile()

   {      

      JFileChooser fileChooser = new JFileChooser();



      fileChooser.setFileSelectionMode(

         JFileChooser.FILES_ONLY );

      int result = fileChooser.showOpenDialogthis );



      // user clicked Cancel button on dialog

      if result == JFileChooser.CANCEL_OPTION )

         file = null;

      else

         file = fileChooser.getSelectedFile();

   }



   private void createPlayer()

   {

      if file == null )

         return;



      removePreviousPlayer();



      try {

         // create a new player and add listener

         player = Manager.createPlayerfile.toURL() );

         player.addControllerListenernew EventHandler() );

         player.start();  // start player

      }

      catch Exception e ){

         JOptionPane.showMessageDialogthis,

            "Invalid file or location""Error loading file",

            JOptionPane.ERROR_MESSAGE );

      }

   }



   private void removePreviousPlayer()

   {

      if player == null )

         return;



      player.close();



      Component visual = player.getVisualComponent();

      Component control = player.getControlPanelComponent();



      Container c = getContentPane();

     

      if visual != null 

         c.removevisual );



      if control != null 

         c.removecontrol );

   }



   public static void main(String args[])

   {

      MediaPlayerDemo app = new MediaPlayerDemo();



      app.addWindowListener(

         new WindowAdapter() {

            public void windowClosingWindowEvent e )

            {

               System.exit(0);

            }

         }

      );

   }



   // inner class to handler events from media player

   private class EventHandler implements ControllerListener {

      public void controllerUpdateControllerEvent e ) {

         if instanceof RealizeCompleteEvent ) {

            Container c = getContentPane();

         

            // load Visual and Control components if they exist

            Component visualComponent =

               player.getVisualComponent();



            if visualComponent != null )

               c.addvisualComponent, BorderLayout.CENTER );



            Component controlsComponent =

               player.getControlPanelComponent();



            if controlsComponent != null )

               c.addcontrolsComponent, BorderLayout.SOUTH );



            c.doLayout();

         }

      }

   }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>