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

📄 mediaplayerframe.java

📁 这是一个简单的用JMF完成的播放器软件
💻 JAVA
字号:
/*
 * MediaPlayerFrame.java
 *
 * Created on 2008年3月28日, 上午1:02
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.gjunit.CRT;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
 
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.Manager;
import javax.media.Player;
import javax.media.RealizeCompleteEvent;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToolBar;
 
public class MediaPlayerFrame extends JFrame implements ControllerListener {
  private Player player = null;
  private Component center, south;
  private File file;
 
  public MediaPlayerFrame() {
    super("Media Player");
    getContentPane().add(getToolBar(), BorderLayout.PAGE_START);
    setSize(400, 400);
    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    setLocationRelativeTo(null);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        if (player != null) {
          player.stop();
          player.close();
        }
        System.exit(0);
      }
    });
    setVisible(true);
  }
 
  private JToolBar getToolBar() {
    JToolBar tb = new JToolBar();
    tb.add(getOpenBtn());
    tb.add(getExitBtn());
    return tb;
  }
 
  private JButton getExitBtn() {
    JButton exit = new JButton("Exit");
    exit.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (player != null) {
          player.stop();
          player.close();
        }
        System.exit(0);
      }
    });
    return exit;
  }
 
  private JButton getOpenBtn() {
    JButton open = new JButton("Open");
    open.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) 
      {
        JFileChooser fc = new JFileChooser(file);  //显示文件
        if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)  //选择确认后返回
        {  
          file = fc.getSelectedFile();   //file是选择确认后的文件
          if (player != null)     //判断是否在播放
          {
            player.stop();     //如果是就停止
            player.close();    //关闭
          }
          try {
            player = Manager.createPlayer(file.toURL());    //获得player的对象
            player.addControllerListener(MediaPlayerFrame.this);  //加入监听器
            player.start();     //开始播放
          } catch (Exception ex) {
            ex.printStackTrace();
          }
        }
      }
    });
    return open;
  }
 
  public static void main(String[] args) {
    new MediaPlayerFrame();
  }
 
  public void controllerUpdate(ControllerEvent ce) {
    if (ce instanceof RealizeCompleteEvent) {
    Container cp = getContentPane();
      if(center != null)
        cp.remove(center);
      
      if ((center = player.getVisualComponent()) != null)
        cp.add(center);
     
      if(south != null)
        cp.remove(south);
      
      if ((south = player.getControlPanelComponent()) != null)
        cp.add(south, BorderLayout.SOUTH);
      validate();
      
      pack();
    }
  }
}

⌨️ 快捷键说明

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