Posted: April 24th, 2011 | Filed under: Java, Programmieren | Tags: abspielen, Applet, Java, play, sound, WAV | No Comments »
Will man in einem Java Applet eine WAV–Datei abspielen ohne auf die lokale Festplatte zugreifen zu müssen, also ohne dass der Benutzer eine Sicherheitsfrage gestellt bekommt, muss man die Applet eigene Methode getAudioClip verwenden. Leider funktioniert diese nicht für MP3s oder OGG.
Beispiel Applet
Applet-Quellcode
import java.applet.AudioClip; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.MalformedURLException; import java.net.URL; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class PlayWav extends javax.swing.JApplet { public static JApplet playWav; private JButton playButton; private JButton stopButton; // Audio private AudioClip audioClip; public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame frame = new JFrame(); PlayWav inst = new PlayWav(); frame.getContentPane().add(inst); ((JComponent) frame.getContentPane()).setPreferredSize(inst .getSize()); frame.pack(); frame.setVisible(true); } }); } public PlayWav() { super(); initGUI(); } private void initGUI() { try { playWav = this; BorderLayout thisLayout = new BorderLayout(); getContentPane().setLayout(thisLayout); { playButton = new JButton(); getContentPane().add(playButton, BorderLayout.CENTER); playButton.setText("play"); // Play // Wav Datei online abspielen mittels der Applet-Methode // getAudioClip. playButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { try { // alarm.wav liegt in // http://blog.mynotiz.de/howTo/PlayWav/alarm.wav URL url = new URL(getDocumentBase().toString()); audioClip = playWav.getAudioClip(url, "alarm.wav"); } catch (MalformedURLException e) { e.printStackTrace(); } // Play normal audioClip.play(); // Play in loop // audioClip.loop(); } }); } { stopButton = new JButton(); getContentPane().add(stopButton, BorderLayout.SOUTH); stopButton.setText("stop"); // Stop stopButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { audioClip.stop(); } }); } } catch (Exception e) { e.printStackTrace(); } } } |
HTML-Quellcode
<applet style="border: 1px solid black;" code="PlayWav.class" archive="playWav.jar"> Ihr Browser unterstütz keine Java Applets! </applet>
Wie ihr aus eurem Code ein Applet erzeugt erfahrt ihr hier.
FTP-Ordner
Im FTP-Verzeichnis sieht das ganze dann wie folgt aus.