首页文章Java-MediaPlayer源码java下载手机版「Java-MediaPlayer源码」

Java-MediaPlayer源码java下载手机版「Java-MediaPlayer源码」

时间2025-05-22 17:02:21发布yu分类文章浏览28
导读:import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.FileDialog; import java.awt.Font; import java.awt.F...
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.FileDialog; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.ControllerClosedEvent; import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media.EndOfMediaEvent; import javax.media.GainControl; import javax.media.Manager; import javax.media.MediaLocator; import javax.media.NoPlayerException; import javax.media.Player; import javax.media.PrefetchCompleteEvent; import javax.media.RealizeCompleteEvent; import javax.media.Time; import javax.sound.midi.ControllerEventListener; import javax.sound.midi.ShortMessage; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.UIManager; public class MediaPlayer extends JFrame implements ActionListener,ControllerEventListener, ControllerListener { /** * */ private static final long serialVersionUID = 1L; MediaPlayer(String title) { setTitle(title); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); } public void windowClosed(WindowEvent e) { System.exit(0); } }); setupMenu(); setSize(400,200); setVisible(true); } public void setupMenu() { JMenu Jm=new JMenu("文件"); JMenuItem mi=new JMenuItem("打开"); mi.addActionListener(this); Jm.add(mi); Jm.addSeparator(); JCheckBoxMenuItem cbmi=new JCheckBoxMenuItem("循环",true); cbmi.addActionListener(this); Jm.add(cbmi); Jm.addSeparator(); mi=new JMenuItem("退出"); mi.addActionListener(this); Jm.add(mi); //=== JMenu l=new JMenu("播放列表"); JMenu c=new JMenu("播放控制"); JMenuItem move=new JMenuItem("播放"); move.addActionListener(this); c.add(move); c.addSeparator(); JMenuItem parse=new JMenuItem("暂停"); parse.addActionListener(this); c.add(parse); c.addSeparator(); JMenuItem stop=new JMenuItem("停止"); stop.addActionListener(this); c.add(stop); //=== JMenuBar mb=new JMenuBar(); mb.add(Jm); mb.add(c); mb.add(l); setJMenuBar(mb); } public void actionPerformed(ActionEvent e) { String cufile,selectfile,currentDirectory = null; //退出命令 if(e.getActionCommand().equals("退出")) { dispose(); return; } //播放命令 if(e.getActionCommand().equals("播放")) { if(player!=null) player.start(); return; } if(e.getActionCommand().equals("暂停")) { if(player!=null) player.stop(); return; } if(e.getActionCommand().equals("停止")) { if(player!=null) { player.stop(); player.setMediaTime(new Time(0)); } return; } if(e.getActionCommand().equals("循环")) { loop=!loop; return; } //==== if(e.getActionCommand().equals("打开")) { FileDialog fd=new FileDialog(this,"打开媒体文件",FileDialog.LOAD); fd.setDirectory(currentDirectory); fd.setVisible(true); //== if (fd.getFile()==null) { return; } selectfile=fd.getFile(); currentDirectory=fd.getDirectory(); cufile=currentDirectory+selectfile; //==== } else { cufile=e.getActionCommand(); selectfile=cufile; } if(player!=null) { player.close(); } try{ player=Manager.createPlayer(new MediaLocator("file:"+cufile)); JMenuItem mi=new JMenuItem(selectfile); mi.setActionCommand(cufile); JMenuBar mb=getJMenuBar(); JMenu m=mb.getMenu(2); mi.addActionListener(this); m.add(mi); } catch(java.io.IOException e2) { System.out.println(e2); return; } catch(NoPlayerException e2) { JOptionPane.showMessageDialog(null, "无法播放","提示",JOptionPane.ERROR_MESSAGE); return; } if(player==null) { JOptionPane.showMessageDialog(null, "无法创建播放器","提示",JOptionPane.ERROR_MESSAGE); return; } first=false; setTitle(selectfile); player.addControllerListener(this); player.prefetch(); } public void controllerUpdate(ControllerEvent e) { Container tainer=getContentPane(); // if(e instanceof ControllerClosedEvent) { if(vc!=null) { remove(vc); vc=null; } if(cc!=null) { remove(cc); cc=null; } return; } if(e instanceof EndOfMediaEvent) { player.setMediaTime(new Time(0)); if(loop) { player.start(); } return; } if (e instanceof PrefetchCompleteEvent) { player.start(); return; } if(e instanceof RealizeCompleteEvent) { vc=player.getVisualComponent(); if (vc!=null) { tainer.add(vc,BorderLayout.CENTER); } cc=player.getControlPanelComponent(); cc.setBackground(Color.blue); if(cc!=null) { tainer.add(cc,BorderLayout.SOUTH); } gc=player.getGainControl(); gcc=gc.getControlComponent(); if (gcc!=null) { tainer.add(gcc,BorderLayout.NORTH); } if(vc!=null) { pack(); return; } else { setSize(400,85); setVisible(true); return; } } } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { super.paint(g); if(first) { int w=getSize().width; int h=getSize().height-50; g.setColor(Color.black); g.fillRect(0, 50, w, h); Font f=new Font("DialogInput",Font.BOLD,18); g.setFont(f); FontMetrics fm=g.getFontMetrics(); int swidth=fm.stringWidth("简单媒体播放器 "); g.setColor(Color.white); g.drawString("简单媒体播放器", (w-swidth)/2, (h+50+getInsets().top)/2); } } public static void main(String[] args) { try { //UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//Nimbus风格,jdk6 update10版本以后的才会出现 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//当前系统风格 //UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");//Motif风格,是蓝黑 //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());//跨平台的Java风格 //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");//windows风格,在linux下运行时不成功 //UIManager.setLookAndFeel("javax.swing.plaf.windows.WindowsLookAndFeel");//windows风格 //UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");//java风格 //UIManager.setLookAndFeel("com.apple.mrj.swing.MacLookAndFeel");//待考察, } catch (Exception e) { e.printStackTrace(); } new MediaPlayer("简单媒体播放器"); } @Override public void controlChange(ShortMessage event) { // TODO Auto-generated method stub } private Player player=null; private boolean first=false; private Component vc; private Component cc; private GainControl gc; private Component gcc; private boolean loop=true;

德清版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com

展开全文READ MORE
源码手机下载
华为手机系统更新了耳机没有声音?手机没声音了如何恢复「华为手机系统更新了耳机没有声音?」 微信删除了怎么恢复手机如何恢复微信「微信删除了怎么恢复」