java播放器

cxl1980310發表於2004-02-13
!!!各位老大我快下岡了!!!

最近開發了一個applet的影片程式,但用行在網路上不行











下載JMF2.1.1e播放元件地址

http://java.sun.com/products/java-media/jmf/2.1.1/download.html

//***********************************************************************************
//***********************************************************************************
<html>
<applet code="jmf.class" width=150 height=50>
<param name="file" value="cxl.MP3">
</applet>
</html>


//***************************************************************************************
//***************************************************************************************
//*****************************************************************************************

import javax.media.*;
import java.awt.*;
import com.sun.media.*;
import javax.media.protocol.*;
import javax.media.protocol.DataSource;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
import java.net.*;
import java.applet.*;
import java.lang.*;
import sun.audio.*;
public class jmf extends JApplet implements ActionListener,ControllerListener
{
Container con=this.getContentPane();
private Component vc,cc;
private Player pp=null;
private JMenuBar jMenuBar1 = new JMenuBar();
private JMenu jMenu1 = new JMenu();
private JMenu mm=new JMenu();
private JMenuItem jMenuItem1 = new JMenuItem();
private JMenuItem jMenuItem2 = new JMenuItem("播放本地檔案");
private JMenuItem jMenuItem3 = new JMenuItem("停止播放");
private JMenuItem jMenuItem4 = new JMenuItem();
Font fon=new Font("宋體",15,15);

private Properties pro=new Properties();
private String filepath=null;
private String FileName=null;
private String text;
private File fi;
private URL ur;
private boolean first=true;
private boolean loop=false;
public void init()
{
try
{

}catch(Exception se)
{
System.out.println(se.toString());
}
jMenuItem1.setText("播放");
jMenu1.setFont(fon);
jMenuItem1.setFont(fon);
jMenuItem2.setFont(fon);
jMenuItem3.setFont(fon);
jMenuItem4.setFont(fon);
jMenuItem2.setFont(fon);
jMenuItem3.setFont(fon);
jMenuItem4.setFont(fon);

jMenu1.setText("選擇播放");
jMenuItem4.setText("退出");
jMenuBar1.add(jMenu1);
jMenu1.addSeparator();
jMenu1.add(jMenuItem1);
jMenu1.addSeparator();

jMenu1.add(jMenuItem3);
jMenu1.addSeparator();

this.setJMenuBar(jMenuBar1);
jMenuItem1.addActionListener(this);
jMenuItem3.addActionListener(this);
jMenuItem2.addActionListener(this);


}

//jMenuitem1 event
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jMenuItem1)
{
playstart();
}
if(e.getSource()==jMenuItem3)
{
if(pp!=null)
pp.stop();
}
if(e.getSource()==jMenuItem2)
{

}
}
public void playstart()
{

try
{
FileName=this.getParameter("file");//從APPLET中提取播放檔案
ur=new URL(getDocumentBase(),FileName);

pp=Manager.createPlayer(ur);//產生播放地址
if(pp!=null)
pp.addControllerListener(this);

pp.prefetch();
setSize(150,50);
}
catch(IOException se)
{
JOptionPane.showMessageDialog(null,se.toString(),"",JOptionPane.ERROR_MESSAGE);
}
catch(NoPlayerException se)
{
JOptionPane.showMessageDialog(null,ur.toString()+"不能播放","錯誤",JOptionPane.ERROR_MESSAGE);
}
catch(Exception se)
{
JOptionPane.showMessageDialog(null,se.toString());
}

}

//播放器事件和元件輸出
public synchronized void controllerUpdate (ControllerEvent se)
{
if(se instanceof RealizeCompleteEvent)
{
if((vc=pp.getVisualComponent())!=null)
{
con.add("center",vc);
}
if((cc=pp.getControlPanelComponent())!=null)
if(vc!=null)
{
con.add("South",cc);
repaint();
}
else
{
con.add("Center",cc);
validate();
repaint();
}
}
else if(se instanceof PrefetchCompleteEvent)
{
pp.start();
}

}


}







相關文章