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

📄 videoplay2.java

📁 纯java实现的一个视频播放程序
💻 JAVA
字号:
package videoplayer2;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class VideoPlay2
    extends JFrame
    implements ControllerListener {
  JPanel contentPane;
  BorderLayout borderLayout1 = new BorderLayout();
  Player video;
  String filename;
  JMenuBar jMenuBar1 = new JMenuBar();
  JMenu jMenu1 = new JMenu();
  JMenuItem jMenuItem1 = new JMenuItem();
  JMenuItem jMenuItem2 = new JMenuItem();
  JMenuItem jMenuItem3 = new JMenuItem();
  JMenuItem jMenuItem4 = new JMenuItem();
  JMenuItem jMenuItem5 = new JMenuItem();

  //Construct the frame
  public VideoPlay2() {
    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.setSize(new Dimension(400, 300));
    this.setTitle("视频播放器");
    jMenu1.setText("文件");
    jMenuItem1.setEnabled(true);
    jMenuItem1.setText("打开");
    jMenuItem1.addActionListener(new VideoPlay2_jMenuItem1_actionAdapter(this));
    jMenuItem2.setEnabled(false);
    jMenuItem2.setDoubleBuffered(false);
    jMenuItem2.setText("播放");
    jMenuItem2.addActionListener(new VideoPlay2_jMenuItem2_actionAdapter(this));
    jMenuItem3.setEnabled(false);
    jMenuItem3.setText("暂停");
    jMenuItem3.addActionListener(new VideoPlay2_jMenuItem3_actionAdapter(this));
    jMenuItem4.setEnabled(false);
    jMenuItem4.setText("关闭");
    jMenuItem4.addActionListener(new VideoPlay2_jMenuItem4_actionAdapter(this));
    jMenuItem5.setText("退出");
    jMenuItem5.addActionListener(new VideoPlay2_jMenuItem5_actionAdapter(this));
    jMenuBar1.add(jMenu1);
    jMenu1.add(jMenuItem1);
    jMenu1.add(jMenuItem2);
    jMenu1.add(jMenuItem3);
    jMenu1.add(jMenuItem4);
    jMenu1.add(jMenuItem5);
    contentPane.add(jMenuBar1, BorderLayout.NORTH);
  }

  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  public void playVideo() {
    try {
      //建立一个文件选择对话框
      FileDialog fileDialog = new FileDialog(this, "请选择视频文件", FileDialog.LOAD);
      fileDialog.show();
      filename = fileDialog.getDirectory() + fileDialog.getFile(); //获得文件路径及文件名
      video = Manager.createPlayer(new MediaLocator("file:///" + filename));
      video.addControllerListener(this);
      video.start();
    }
    catch (Exception e) {
      System.out.println("错误:" + e);
    }
  }

  public void pause() {
    if (video != null) {
      video.stop();
    }
  }

  public void close() {
      video.close();
  }

  public void controllerUpdate(ControllerEvent parm1) {
    /**@todo Implement this javax.media.ControllerListener method*/
    if (parm1 instanceof RealizeCompleteEvent) {
      Component component;
      if ( (component = video.getVisualComponent()) != null) {
        contentPane.add(component, BorderLayout.CENTER); //将视频组件加入面板中
      }
      else {
        System.out.println("无法打开视频文件");
      }
      validate();
    }
  }

  void jMenuItem1_actionPerformed(ActionEvent e) {
    playVideo(); //播放视频
    jMenuItem3.setEnabled(true);
    jMenuItem4.setEnabled(true);
  }

  void jMenuItem3_actionPerformed(ActionEvent e) {
    pause();
    jMenuItem3.setEnabled(false);
    jMenuItem2.setEnabled(true);
  }

  void jMenuItem4_actionPerformed(ActionEvent e) {
    close();
  }

  void jMenuItem2_actionPerformed(ActionEvent e) {
    video.start();
    jMenuItem2.setEnabled(false);
    jMenuItem3.setEnabled(true);
  }

  void jMenuItem5_actionPerformed(ActionEvent e) {
    dispose();
    System.exit(0);
  }
}

class VideoPlay2_jMenuItem1_actionAdapter
    implements java.awt.event.ActionListener {
  VideoPlay2 adaptee;

  VideoPlay2_jMenuItem1_actionAdapter(VideoPlay2 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem1_actionPerformed(e);
  }
}

class VideoPlay2_jMenuItem2_actionAdapter
    implements java.awt.event.ActionListener {
  VideoPlay2 adaptee;

  VideoPlay2_jMenuItem2_actionAdapter(VideoPlay2 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem2_actionPerformed(e);
  }
}

class VideoPlay2_jMenuItem3_actionAdapter
    implements java.awt.event.ActionListener {
  VideoPlay2 adaptee;

  VideoPlay2_jMenuItem3_actionAdapter(VideoPlay2 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem3_actionPerformed(e);
  }
}

class VideoPlay2_jMenuItem4_actionAdapter
    implements java.awt.event.ActionListener {
  VideoPlay2 adaptee;

  VideoPlay2_jMenuItem4_actionAdapter(VideoPlay2 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem4_actionPerformed(e);
  }
}

class VideoPlay2_jMenuItem5_actionAdapter
    implements java.awt.event.ActionListener {
  VideoPlay2 adaptee;

  VideoPlay2_jMenuItem5_actionAdapter(VideoPlay2 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem5_actionPerformed(e);
  }
}

⌨️ 快捷键说明

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