⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example16_4.java

📁 不错的教程 适合中高级人员的使用
💻 JAVA
字号:
import java.applet.*;import java.awt.*;
import java.net.*;import java.awt.event.*;
import java.io.*;import javax.media.*;
 class JMFWindow extends Frame implements ControllerListener,Runnable,ItemListener
{  Player player;
   String str; 
   Thread mythread;
   Choice choice;
   Component visualComponent,controlComponent;
   String mediaFile;
   URL mediaURL;
   
   JMFWindow()
   { thread=new Thread(this);
	   str="Music01.MPG"; 
     mythread=new Thread(this);
     choice=new Choice();
     choice.add("Music01.MPG");
     choice.add("Music02.avi");
     choice.add("Music03.avi");
     choice.addItemListener(this);
	 add(choice,BorderLayout.NORTH);     
     setSize(300,200);
	 setVisible(true);
     frame.addWindowListener(new WindowAdapter()
            {  public void windowClosing(WindowEvent e)
               {  if(player!=null)
                    { player.stop();player.deallocate(); 
                    }
                 
                 System.exit(0);
               } 
            });
     validate();
   } 
  
   public synchronized void controllerUpdate(ControllerEvent event)
   {   player.getDuration();
      if(event  instanceof  RealizeCompleteEvent)
        { if((visualComponent=player.getVisualComponent())!=null)
                 frame.add("Center",visualComponent);
          if((controlComponent=player.getControlPanelComponent())!=null)
                if(visualComponent!=null)
                     frame.add("South",controlComponent);
                else
                     frame.add( "Center",controlComponent);
          frame.validate();
          frame.pack();
        }
     else if(event  instanceof  PrefetchCompleteEvent)
        {  player.start(); 
        }
   }
   public void itemStateChanged(ItemEvent e)
   {  
      str=choice.getSelectedItem();
      if(player==null)
         {
         }
      else
         { player.stop();player.deallocate(); 
         }
      if(visualComponent!=null)
		  remove(visualComponent);
	  if(controlComponent!=null)
		  remove(controlComponent);
	  validate();
      if(!(thread.isAlive()))
         {  mythread=new Thread(this);
         }
      try{
            mythread.start();
         }
      catch(Exception ee)
         {
         }
   }
   public synchronized void run()
   {  try{  File file=new File(str);
	        mediaURL=file.toURL();
            player=Manager.createPlayer(mediaURL);player.getDuration();
            if(player!=null)
             {  player.addControllerListener(this);
             }
           else
             System.out.println("无法创建播放器");
       }
     catch(MalformedURLException e)
       {  System.out.println("URL for"+mediaFile+"is invalid");
       }
      catch(IOException e)
       {  System.out.println("URL for"+mediaFile+"is invalid");
       }
     
     if(player!=null)
       { player.prefetch(); 
       }
   }
}
public class Example16_4
{
	public static void main(String args[])
	{JMFWindow win=new JMFWindow();}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -