package org.versuchNr2;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.HashMap;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.Manager;
import javax.media.Player;
import javax.media.RealizeCompleteEvent;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class VersuchNr2 extends JFrame implements ControllerListener, ActionListener {
private Player player;
private Component control;
private JPanel viewPanel;
private JPanel labelPanel;
public VersuchNr2() {
File file = new File("NVEExport.0001-1.mpg");
play(file);
//
// setTitle("AudioVideo-Demo");
// setLayout(new BorderLayout());
//
// // Menüleiste erstellen
// JMenuBar mb = new JMenuBar();
// JMenu fileMenu = new JMenu("Datei");
// JMenuItem fileMenuPlay = new JMenuItem("Öffnen");
// fileMenuPlay.addActionListener(this);
// fileMenu.add(fileMenuPlay);
// mb.add(fileMenu);
// setJMenuBar(mb);
JLabel label = new JLabel("");
labelPanel = new JPanel();
labelPanel.add(label);
// add(labelPanel, BorderLayout.NORTH);
// setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
// Mausbehandlung zur Dateiauswahl
public void actionPerformed(ActionEvent e) {
// // Dateinamen auswählen
// JFileChooser chooser = new JFileChooser();
// String[] extensions = { "mpg", "wav", "mp3" };
// MyFileFilter filter = new MyFileFilter(extensions);
// chooser.setFileFilter(filter);
// int choice = chooser.showOpenDialog(VersuchNr2.this);
//
// if (choice == JFileChooser.APPROVE_OPTION) {
// File file = chooser.getSelectedFile();
//
// if (file != null)
// play(file);
//
// }
}
// Abspielen einer Audio/Video-Datei
public void play(File file) {
if (player != null)
player.stop();
try {
// Anzeige für Dateinamen aktualisieren
//labelPanel.remove(0);
JLabel label = new JLabel(file.getName());
//labelPanel.add(label);
player = Manager.createPlayer(new File("5.mpg").toURL());
player.addControllerListener(this);
player.start();
} catch (Exception e) {
e.printStackTrace();
}
}
// Anzeige von Audio/Video
public void controllerUpdate(ControllerEvent e) {
if (e instanceof RealizeCompleteEvent) {
// Player ist mit Vorbereitungen fertig
// evtl. alte Ansicht und Steuerung entfernen
// if (viewPanel != null)
// remove(viewPanel);
//
// if (control != null)
// remove(control);
// AWT Komponente mit Bild
Component view = player.getVisualComponent();
// Anzeige des Bildes falls es ein Video ist
if (view != null) {
viewPanel = new JPanel();
viewPanel.add(view);
add(viewPanel, BorderLayout.CENTER);
}
//control = player.getControlPanelComponent();
// if (control != null)
// ;
// add(control, BorderLayout.SOUTH);
pack();
}
}
}
/**
* FileFilter für Dateiauswahl-Box
*/
class MyFileFilter extends javax.swing.filechooser.FileFilter {
private HashMap<String, String> extensions;
private String description;
public MyFileFilter(String[] ext) {
description = "";
extensions = new HashMap<String, String>();
for (int i = 0; i < ext.length; i++) {
if (ext[i].startsWith("."))
ext[i] = ext[i].substring(1);
if (ext[i].startsWith("*."))
ext[i] = ext[i].substring(2);
extensions.put(ext[i], ext[i]);
description += " *." + ext[i] + ",";
}
}
public String getDescription() {
return description.substring(0, description.length());
}
public boolean accept(File f) {
if (f != null) {
if (f.isDirectory())
return true;
else {
String name = f.getName();
int pos = name.indexOf(".");
if (pos < 0)
return false;
String ext = name.substring(pos + 1);
if (extensions.get(ext) != null)
return true;
else
return false;
}
} else
return false;
}
}
/*
*
*
*
* public VersuchNr1() { // TODO Auto-generated constructor stub }
*
*
* public static void main(String[] args) { // TODO Auto-generated method stub
* }
*
* @Override public void controllerUpdate(ControllerEvent arg0) { // TODO
* Auto-generated method stub
* }
*
* @Override public void actionPerformed(ActionEvent arg0) { // TODO
* Auto-generated method stub
* }
* }
*/