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

📄 jvideoplayerframe.java~9~

📁 JAVA媒体的课程设计
💻 JAVA~9~
字号:
package jvideosystem;import java.util.*;import java.net.*;import java.lang.reflect.Method;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.media.*;import javax.media.util.*;import javax.media.format.*;import javax.media.control.*;import javax.media.protocol.*;import javax.media.bean.playerbean.*;import javax.media.rtp.*;import javax.media.rtp.event.*;import com.sun.media.util.JMFI18N;//import com.sun.media.rtp.RTPSessionMgr;import jvideosystem.*;import javax.swing.border.*;/** * <p>Title: 视频播放系统</p> * <p>Description: JBuilder实现视频播放</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: 格瑞特公司</p> * @author 蔡斌 * @version 1.0 */public class JVideoPlayerFrame extends JFrame  implementsControllerListener, ItemListener{  JPanel contentPane;  JMenuBar jMenuBar1 = new JMenuBar();  JMenu jMenuFile = new JMenu();  JMenuItem jMenuFile_open = new JMenuItem();  JMenu jMenuHelp = new JMenu();  JMenuItem jMenuHelp_about = new JMenuItem();  BorderLayout borderLayout1 = new BorderLayout();  JMenu jMenuPlay = new JMenu();  JMenuItem jMenuFile_exit = new JMenuItem();  JCheckBoxMenuItem jCheckBoxMenuItem_loop = new JCheckBoxMenuItem();  JLabel jLabel1 = new JLabel();  JPanel jPanelVideo = new JPanel();  TitledBorder titledBorder1;  BorderLayout borderLayout2 = new BorderLayout();  //private FileDialog              dlgOpenFile = null;  //private DataSource              dataSourceCurrent = null;  //private String                  audioEffect = null;  //private String                  videoEffect = null;  //protected MediaPlayer       mediaPlayerCurrent = null;  protected Cursor            cursorWait = new Cursor ( Cursor.WAIT_CURSOR );  Player player;  Component visualcom, controlcom;  boolean first = true, loop = false;  String currentDirectory;  FileDialog fd ;  //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();    titledBorder1 = new TitledBorder("");    contentPane.setLayout(borderLayout1);    this.getContentPane().setBackground(Color.lightGray);    this.setLocale(new java.util.Locale("zh", "CN", ""));    this.setResizable(false);    this.setSize(new Dimension(400, 300));    this.setTitle("格瑞特视频播放系统");    this.addWindowListener(new JVideoPlayerFrame_this_windowAdapter(this));    jMenuFile.setText("文件");    jMenuFile.addActionListener(new JVideoPlayerFrame_jMenuFile_actionAdapter(this));    jMenuFile_open.setText("打开");    jMenuFile_open.addActionListener(new JVideoPlayerFrame_jMenuFile_open_ActionAdapter(this));    jMenuFile_exit.setText("退出");    jMenuFile_exit.addActionListener(new JVideoPlayerFrame_jMenuFile_exit_actionAdapter(this));    jMenuPlay.setText("播放");    jCheckBoxMenuItem_loop.setSelected(false);    jCheckBoxMenuItem_loop.setText("循环播放");    jCheckBoxMenuItem_loop.addActionListener(new JVideoPlayerFrame_jCheckBoxMenuItem_loop_actionAdapter(this));    jMenuHelp.setText("帮助");    jMenuHelp_about.setText("关于");    jMenuHelp_about.addActionListener(new JVideoPlayerFrame_jMenuHelp_about_ActionAdapter(this));    jPanelVideo.setToolTipText("视频窗口");    jPanelVideo.setVerifyInputWhenFocusTarget(true);    jPanelVideo.setLayout(borderLayout2);    jLabel1.setToolTipText("状态栏");    jMenuBar1.setToolTipText("菜单栏");    jMenuFile.add(jMenuFile_open);    jMenuFile.add(jMenuFile_exit);    jMenuPlay.add(jCheckBoxMenuItem_loop);    jMenuHelp.add(jMenuHelp_about);    jMenuBar1.add(jMenuFile);    jMenuBar1.add(jMenuPlay);    jMenuBar1.add(jMenuHelp);    this.setJMenuBar(jMenuBar1);    jLabel1.setBorder(BorderFactory.createLoweredBevelBorder());    jLabel1.setOpaque(true);    jLabel1.setIcon(new ImageIcon(JVideoPlayerFrame.class.getResource("about.png")));    jLabel1.setText("欢迎使用格瑞特视频播放系统 copyright@2003");    contentPane.add(jLabel1, BorderLayout.SOUTH);    contentPane.add(jPanelVideo, BorderLayout.CENTER);  }  //File | Open action performed  public void jMenuFile_open_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 {      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("不能找到播放器.");      return;    }    if (player == null) {      System.out.println("无法创建播放器.");      return;    }    //this.setCursor ( cursorWait );    first = false;    setTitle("播放文件位置 " + fd.getDirectory() + fd.getFile());    player.addControllerListener ( this );    //player.realize();    player.prefetch();  }  public void controllerUpdate (ControllerEvent e)  {// 调用player.close()时ControllerClosedEvent事件出现。// 如果存在视觉部件,则该部件应该拆除(为一致起见,// 我们对控制面板部件也执行同样的操作)    if (e instanceof ControllerClosedEvent) {      if (visualcom != null) {        jPanelVideo.remove(visualcom);        visualcom = null;      }      if (controlcom != null) {        jPanelVideo.remove(controlcom);        controlcom = null;      }      return;    }    if (e instanceof EndOfMediaEvent) {      if (loop) {        player.setMediaTime(new Time(0));        player.start();      }      return;    }    if (e instanceof PrefetchCompleteEvent) {      player.start();      return;    }      if (e instanceof RealizeCompleteEvent) {      visualcom = player.getVisualComponent();      if (visualcom != null)        jPanelVideo.add(visualcom, BorderLayout.CENTER );      controlcom = player.getControlPanelComponent();      if (controlcom != null)        jPanelVideo.add(controlcom, BorderLayout.SOUTH );      this.pack();    }  }  public void itemStateChanged (ItemEvent e)  {    //loop = !loop;  }  //Help | About action performed  public void jMenuHelp_about_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) {      jMenuFile_open_actionPerformed(null);    }  }  //File | Exit action performed  void jMenuFile_exit_actionPerformed(ActionEvent e) {    dispose ();    return;  }  void this_windowClosing(WindowEvent e) {    // 用户点击窗口系统菜单的关闭按钮    // 调用dispose以执行windowClosed    dispose();  }  void this_windowClosed(WindowEvent e) {    System.exit (0);  }  void jMenuFile_actionPerformed(ActionEvent e) {  }  void jCheckBoxMenuItem_loop_actionPerformed(ActionEvent e) {    loop = !loop;  }}class JVideoPlayerFrame_jMenuFile_open_ActionAdapter implements ActionListener {  JVideoPlayerFrame adaptee;  JVideoPlayerFrame_jMenuFile_open_ActionAdapter(JVideoPlayerFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuFile_open_actionPerformed(e);  }}class JVideoPlayerFrame_jMenuHelp_about_ActionAdapter implements ActionListener {  JVideoPlayerFrame adaptee;  JVideoPlayerFrame_jMenuHelp_about_ActionAdapter(JVideoPlayerFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuHelp_about_actionPerformed(e);  }}class JVideoPlayerFrame_jMenuFile_exit_actionAdapter implements java.awt.event.ActionListener {  JVideoPlayerFrame adaptee;  JVideoPlayerFrame_jMenuFile_exit_actionAdapter(JVideoPlayerFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuFile_exit_actionPerformed(e);  }}class JVideoPlayerFrame_this_windowAdapter extends java.awt.event.WindowAdapter {  JVideoPlayerFrame adaptee;  JVideoPlayerFrame_this_windowAdapter(JVideoPlayerFrame adaptee) {    this.adaptee = adaptee;  }  public void windowClosing(WindowEvent e) {    adaptee.this_windowClosing(e);  }  public void windowClosed(WindowEvent e) {    adaptee.this_windowClosed(e);  }}class JVideoPlayerFrame_jMenuFile_actionAdapter implements java.awt.event.ActionListener {  JVideoPlayerFrame adaptee;  JVideoPlayerFrame_jMenuFile_actionAdapter(JVideoPlayerFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuFile_actionPerformed(e);  }}class JVideoPlayerFrame_jCheckBoxMenuItem_loop_actionAdapter implements java.awt.event.ActionListener {  JVideoPlayerFrame adaptee;  JVideoPlayerFrame_jCheckBoxMenuItem_loop_actionAdapter(JVideoPlayerFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jCheckBoxMenuItem_loop_actionPerformed(e);  }}

⌨️ 快捷键说明

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