package javacodebook.media.sound; import java.applet.*; import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; /** * Ein einfacher Frame, der die Abspielfunktionen des Java Media Frameworks * demonstriert. */ public class SoundPlayer extends JFrame { AudioClip clip = null; /** * Einen Frame mit einfacher Benutzerführung erstellen und anzeigen. */ public SoundPlayer() { setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); getContentPane().setLayout(new BorderLayout()); //Einen Button zum Öffnen von Dateien erstellen JPanel buttonPanel = new JPanel(); getContentPane().add(buttonPanel, BorderLayout.NORTH); JButton openButton = new JButton("Datei öffnen"); JButton stopButton = new JButton("Stop"); buttonPanel.add(openButton); buttonPanel.add(stopButton); //Einen ActionLister auf den Button legen, der einen FileChooser öffnet openButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { JFileChooser chooser = new JFileChooser(new File("d:\\win2000\\media")); int status = chooser.showOpenDialog(SoundPlayer.this); if (status == JFileChooser.APPROVE_OPTION) { //ausgewählte Datei ermitteln und abspielen File file = chooser.getSelectedFile(); try { //Einen Audio-Clip erzeugen clip = Applet.newAudioClip(file.toURL()); //Audio-Clip abspielen clip.play(); } catch(Exception e) { e.printStackTrace(System.out); } } } }); stopButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { if(clip != null) { clip.stop(); } } }); } public static void main(String[] args) { //Erzeuge einen neuen SoundPlayer und zeige ihn an SoundPlayer SoundPlayer = new SoundPlayer(); SoundPlayer.setSize(320, 200); SoundPlayer.pack(); SoundPlayer.show(); } }