import java.io.*;
import java.net.MalformedURLException;
import javax.swing.*;
import javax.media.*;
public class JMFSound extends Object
implements ControllerListener {
File soundFile;
JDialog playingDialog;
public static void main (String[] args) {
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
try {
JMFSound s = new JMFSound (f);
} catch (Exception e) {
e.printStackTrace();
}
}
public JMFSound (File f)
throws NoPlayerException, CannotRealizeException,
MalformedURLException, IOException {
soundFile = f;
// prepare a dialog to display while playing
JOptionPane pane = new JOptionPane ("Playing " + f.getName(),
JOptionPane.PLAIN_MESSAGE);
playingDialog = pane.createDialog (null, "JMF Sound");
playingDialog.pack();
// get a player
MediaLocator mediaLocator =
new MediaLocator(soundFile.toURL());
Player player =
Manager.createRealizedPlayer (mediaLocator);
player.addControllerListener (this);
player.start();
playingDialog.setVisible(true);
}
// ControllerListener implementation
public void controllerUpdate (ControllerEvent e) {
System.out.println (e.getClass().getName());
if (e instanceof EndOfMediaEvent) {
playingDialog.setVisible(false);
System.exit (0);
}
}
}
|