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

📄 jvideoplayerframe.java~23~

📁 一个JAVA做的视频系统
💻 JAVA~23~
字号:
package jvideosystem;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.media.*;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.MalformedURLException;
import java.net.*;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class JVideoPlayerFrame extends JFrame {
  JPanel contentPane;
  JMenuBar jMenuBar1 = new JMenuBar();
  JMenu jMenuFileexit = new JMenu();
  JMenu jMenuHelp = new JMenu();
  JMenuItem jMenuHelpAbout = new JMenuItem();
  BorderLayout borderLayout1 = new BorderLayout();
  JLabel jLabel1 = new JLabel();
  JPanel jPanelVideo = new JPanel();
  BorderLayout borderLayout2 = new BorderLayout();
  JMenuItem jMenuFileopen = new JMenuItem();
  JMenu jMenu1 = new JMenu();
  JMenuItem jMenuItem1 = new JMenuItem();
  JMenuItem jMenuItem2 = new JMenuItem();
URL url;
  Player player;
  //Component visualcom,controlcom;
      Component visualcom,controlcom;
  //boolean first=true,loop=false;
      boolean first=true,loop=false;
  //String currentDirectory;
      String currentDirectory;
 // FileDialog fd;
  FileDialog fd;
  JMenuItem jMenuItem3 = new JMenuItem();





  //Construct the frame
  public JVideoPlayerFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(borderLayout1);
    this.setResizable(false);
    this.setSize(new Dimension(400, 300));
    this.setTitle("Java媒体播放器");
    jMenuFileexit.setText("文件");
    jMenuHelp.setText("帮助");
    jMenuHelpAbout.setText("关于");
    jMenuHelpAbout.addActionListener(new JVideoPlayerFrame_jMenuHelpAbout_ActionAdapter(this));
    jLabel1.setOpaque(true);
    jLabel1.setToolTipText("状态栏");
    jLabel1.setText("欢迎使用Java 视频播放系统");
    jPanelVideo.setLayout(borderLayout2);
    jPanelVideo.setOpaque(true);
    jPanelVideo.setToolTipText("视频窗口");
    jMenuFileopen.setText("打开");
    jMenuFileopen.addActionListener(new JVideoPlayerFrame_jMenuFileopen_actionAdapter(this));
    jMenu1.setText("播放");
    jMenuItem1.setText("循环播放");
    jMenuItem1.addActionListener(new JVideoPlayerFrame_jMenuItem1_actionAdapter(this));
    jMenuItem2.setText("退出");
    jMenuItem2.addActionListener(new JVideoPlayerFrame_jMenuItem2_actionAdapter(this));
    jMenuItem3.setText("播放");
    jMenuItem3.addActionListener(new JVideoPlayerFrame_jMenuItem3_actionAdapter(this));
    jMenuFileexit.add(jMenuFileopen);
    jMenuFileexit.add(jMenuItem2);
    jMenuHelp.add(jMenuHelpAbout);
    jMenuBar1.add(jMenuFileexit);
    jMenuBar1.add(jMenuHelp);
    jMenuBar1.add(jMenu1);
    contentPane.add(jLabel1,  BorderLayout.SOUTH);
    contentPane.add(jPanelVideo, BorderLayout.CENTER);
    jMenu1.add(jMenuItem1);
    jMenu1.add(jMenuItem3);
    this.setJMenuBar(jMenuBar1);
  }
  //File | Exit action performed
  public void jCheckBoxMenultem_loop_actionPerformed(ActionEvent e) {
    System.exit(0);
  }
  //Help | About action performed
  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
    JVideoPlayerFrame_AboutBox dlg = new JVideoPlayerFrame_AboutBox(this);
    Dimension dlgSize = dlg.getPreferredSize();
    Dimension frmSize = getSize();
    Point loc = getLocation();
    dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
    dlg.setModal(true);
    dlg.pack();
    dlg.show();
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      jCheckBoxMenultem_loop_actionPerformed(null);
    }
  }



  void jMenuFileopen_actionPerformed(ActionEvent e) {

    FileDialog fd = new FileDialog(this, "打开媒体文件", FileDialog.LOAD);
    fd.setDirectory(currentDirectory);
    fd.show();
    if(fd.getFile()==null)
      return;
 currentDirectory=fd.getDirectory();
 if(player!=null)
   player.close();

 try{
System.out.println("hello");
   // player=Manager.createPlayer(new MediaLocator("file:"+fd.getDirectory()+fd.getFile()));
     //
     url=new URL("file:\\F:\\音乐\\刘德华\\6.mp3");
     player=Manager.createPlayer(url);
   }

    catch(Exception e2){
  System.out.println(e2);
  return;
}

if (player==null){

      System.out.println("无法创建播放器");
return;}
first=false;

//设置主界面的标题为媒体文件的目录名加上文件名
    this.setTitle("播放文件位置"+fd.getDirectory()+fd.getFile());
//将JVideoPlayerFrame对象注册为来自JMF播放器对象的控制器事件的动作监听器
//player.addControllerListener(this);
     player.addControllerListener(new ControllerAdapter() {
       public void endOfMedia(EndOfMediaEvent e) {
     //  player.addControllerListener(this);
     player.prefetch();
         } });
//最后,让JMF播放器对象预先提取媒体文件的内容

System.out.println("hello");




  }
/*
    //    先创建一个对话框对象,标题设置为“打开媒体文件”
    //  FileDialog fd = new FileDialog(this, "打开媒体文件",FileDialog.LOAD);
    FileDialog fd = new FileDialog(this, "打开媒体文件", FileDialog.LOAD);
    // 然后设置该对话框的当前目录为上一次打开的目录
    // fd.setDirectory(currentDirectory);
  fd.setDirectory(currentDirectory);

    fd.show();

    // if(fd.getFile()==null)
    if(fd.getFile()==null)

    return;


    currentDirector=fd.getDirectory();


        if(player!=null)
//           player.close();
          player.close();

    //   try{
   try{

    player=Manager.createPlayer(new MediaLocator("file:"+fd.getDirectory()+fd.getFile()));
   }

    catch(java.io.IOException e2){
  System.out.println(e2);

  return;
}
   catch(NoplayerException e2){
     System.out.println("can't open");
     return;
   }

if(player==null){
     System.out.println("cant initialize");
     return;
     first = false;
     this.setTitle("position" + fd.getDirectory() + fd.getFile());
   player.prefetch();
   }

*/
public void  controllerUpdate(ControllerEvent e){
    if (e instanceof ControllerClosedEvent){
    //如果视觉部件还存在
    if(visualcom != null) {
    //从jPanelVideo面板中删除该视觉部件
    jPanelVideo.remove(visualcom);
    visualcom = null;

    }
    //如果控制面板部件还存在
    if(controlcom !=null) {
    //从jPanelVideo面板中删除该控制面板部件
    jPanelVideo.remove(controlcom);
    controlcom =null;
    }
   return;
    }
//当媒体播放结束时
    if(e instanceof EndOfMediaEvent){
    //如果带检查框的“循环播放”菜单项被选中
    if(loop) {
    //复位JMF播放器对象的开始时间
    player.setMediaTime(new Time(0));
    //让JMF播放器对象重新播放媒体
   player.start();
   }
   return;
    }
//如果预取媒体文件内容结束时
    if (e instanceof PrefetchCompleteEvent) {
    //让JMF播放器对象开始播放该媒体
   player.start();
//reEurn;
    }
//当实例化(Realize)媒体文件完成时
    if(e instanceof RealizeCompleteEvent) {
    //获取JMF播放器对象的视觉部件
    visualcom =player.getVisualComponent();
    //如果视觉部件存在
    if(visualcom !=null)
    //将视觉部件加入到jPanelVideo面板的中央
    jPanelVideo.add(visualcom,BorderLayout.CENTER);
//获取JMF播放器对象的控制面板部件
   controlcom =player.getControlPanelComponent();
//如果控制面板部件存在
   if(controlcom !=null)
    //将控制面板部件加入到jPanelVideo面板的底端
   jPanelVideo.add(controlcom,BorderLayout.SOUTH);
//执行pack操作
   this.pack();
   }


}













 void jMenuItem2_actionPerformed(ActionEvent e) {

    dispose();
    return;


  }

  void jMenuItem1_actionPerformed(ActionEvent e) {

  }

  void jMenuItem3_actionPerformed(ActionEvent e) {
  }
}


class JVideoPlayerFrame_jMenuHelpAbout_ActionAdapter implements ActionListener {
  JVideoPlayerFrame adaptee;

  JVideoPlayerFrame_jMenuHelpAbout_ActionAdapter(JVideoPlayerFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuHelpAbout_actionPerformed(e);
  }
}

class JVideoPlayerFrame_jMenuFileopen_actionAdapter implements java.awt.event.ActionListener {
  JVideoPlayerFrame adaptee;

  JVideoPlayerFrame_jMenuFileopen_actionAdapter(JVideoPlayerFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuFileopen_actionPerformed(e);
  }
}

class JVideoPlayerFrame_jMenuItem2_actionAdapter implements java.awt.event.ActionListener {
  JVideoPlayerFrame adaptee;

  JVideoPlayerFrame_jMenuItem2_actionAdapter(JVideoPlayerFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem2_actionPerformed(e);
  }
}

class JVideoPlayerFrame_jMenuItem1_actionAdapter implements java.awt.event.ActionListener {
  JVideoPlayerFrame adaptee;

  JVideoPlayerFrame_jMenuItem1_actionAdapter(JVideoPlayerFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem1_actionPerformed(e);
  }
}

class JVideoPlayerFrame_jMenuItem3_actionAdapter implements java.awt.event.ActionListener {
  JVideoPlayerFrame adaptee;

  JVideoPlayerFrame_jMenuItem3_actionAdapter(JVideoPlayerFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem3_actionPerformed(e);
  }
}

⌨️ 快捷键说明

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