📄 example16_4.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 + -