📄 videoplay2.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 + -