📄 ssmediaplayer.java
字号:
//该播放器共3个文件:SSMediaPlayer.java,MusicProcess.java,VideoFrame.java
//该播放器采用JMF开发,没有安装的朋友,到http://java.sun.com/products/java-media/jmf/2.1.1/download.html下载
//第一个文件
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.net.*;
import javax.media.*;
class SSMediaPlayer extends JFrame implements ActionListener
{
//一个简单的Java媒体播放器,采用JMF开发,支持mp3,mpg,mpeg,wav等格式,目前尚不支持 //wmv,wma
//该播放器由兰州交通大学计算机科学与技术031 史永龙(SS)编写,实现了基本的一些功能,给 //初学者练手用,希望大家喜欢!
JButton jbPlay,jbPause,jbContinue,jbStop,jbNext,jbPrev,jbOpen,jbTest;
JPanel jp;
Component vc;
public static java.awt.List list;
String name=null;
String path=null;
String musicname=null;
String musicname1=null;
public static Vector v=new Vector();
Vector v1=new Vector();
int index=0;
int selectindex=0;
public static int stopstaus=0;
public static int staus=0;
MusicProcess mp=new MusicProcess();
public static boolean play=false;
public static boolean pause=false;
public static boolean stop=false;
public SSMediaPlayer()
{
this.setTitle("一个简单的Java媒体播放器");
list=new java.awt.List(10);
this.getContentPane().add(list,"Center");
jbPlay=new JButton("播放",new ImageIcon("ico\\play.gif"));
jbPlay.addActionListener(this);
jbContinue=new JButton("继续",new ImageIcon("ico\\play.gif"));
jbContinue.setVisible(false);
jbContinue.addActionListener(this);
jbPause=new JButton("暂停",new ImageIcon("ico\\pause.gif"));
jbPause.addActionListener(this);
jbStop=new JButton("停止",new ImageIcon("ico\\stop.gif"));
jbStop.addActionListener(this);
jbNext=new JButton("前进",new ImageIcon("ico\\next.gif"));
jbNext.addActionListener(this);
jbPrev=new JButton("后退",new ImageIcon("ico\\prev.gif"));
jbPrev.addActionListener(this);
jbOpen=new JButton("打开",new ImageIcon("ico\\open.gif"));
jbOpen.addActionListener(this);
jp=new JPanel();
jp.add(jbPlay);
jp.add(jbContinue);
jp.add(jbPause);
jp.add(jbPrev);
jp.add(jbNext);
jp.add(jbStop);
jp.add(jbOpen);
this.setTitle(name);
this.getContentPane().add(jp,"South");
this.setSize(430,300);
this.setLocation(140,200);
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jbPlay)
{
try
{
play=true;
staus=0;
Thread ttplay=new Thread(mp);
ttplay.start();
jbPlay.setEnabled(false);
jbPause.setEnabled(true);
return;
}
catch(Exception eplay)
{
eplay.printStackTrace();
}
}
if(e.getSource()==jbPause)
{
try
{
if(mp.play!=null)
{
jbPlay.setVisible(false);
jbContinue.setVisible(true);
jbContinue.setEnabled(true);
jbPause.setEnabled(false);
jbPause.setEnabled(true);
mp.play.stop();
}
return;
}
catch(Exception epause)
{
epause.printStackTrace();
}
}
if(e.getSource()==jbContinue)
{
if(mp.play!=null)
{
jbPlay.setVisible(true);
jbContinue.setVisible(false);
jbPause.setVisible(true);
jbPause.setEnabled(true);
jbContinue.setEnabled(false);
mp.play.start();
vc=mp.play.getVisualComponent();
}
return;
}
if(e.getSource()==jbStop)
{
if(mp.play!=null)
{
mp.play.stop();
mp.play.setMediaTime(new Time(0));
jbPlay.setVisible(true);
jbContinue.setVisible(false);
jbContinue.setEnabled(false);
jbPlay.setEnabled(true);
jbPause.setEnabled(false);
stopstaus=1;
}
return;
}
if(e.getSource()==jbNext)
{
if(mp.play!=null)
{
mp.play.stop();
mp.play.setMediaTime(new Time(0));
if((list.getSelectedIndex()+1)!=list.getItemCount())
{
list.select(list.getSelectedIndex()+1);
Thread ttnext=new Thread(mp);
ttnext.start();
jbPlay.setEnabled(false);
jbPause.setEnabled(true);
}
else
{
list.select(0);
Thread ttnext=new Thread(mp);
ttnext.start();
jbPlay.setEnabled(false);
jbPause.setEnabled(true);
}
}
return;
}
if(e.getSource()==jbPrev)
{
if(mp.play!=null)
{
mp.play.stop();
mp.play.setMediaTime(new Time(0));
if((list.getSelectedIndex()-1)>=0)
{
list.select(list.getSelectedIndex()-1);
Thread ttprev=new Thread(mp);
ttprev.start();
jbPlay.setEnabled(false);
jbPause.setEnabled(true);
}
else
{
list.select(list.getItemCount()-1);
Thread ttprev=new Thread(mp);
ttprev.start();
jbPlay.setEnabled(false);
jbPause.setEnabled(true);
}
}
}
if(e.getSource()==jbOpen)
{
FileDialog fd = new FileDialog(this, "打开媒体文件", FileDialog.LOAD);
fd.setVisible(true);
if(fd.getFile()==null)
{
return;
}
path=fd.getDirectory();
name=fd.getFile();
musicname=path+name;
list.add(musicname,index);
v.add(index,musicname);
v1.add(index,new Integer(index));
list.select(index);
musicname1=(String)v.get(index);
index=index+1;
}
}
public static void main(String args[])
{
new SSMediaPlayer();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -