Play an audio file from an applicationTag(s): IO
Note: Since JDK1.2, Java can play WAV directly, see http://java.sun.com/docs/books/tutorial/sound/playing.html.
In application, the javax.sound.* package is used.
import java.io.File;
import java.io.FileInputStream;
import javax.sound.sampled.*;
import javax.swing.*;
public class AppWithSound extends JFrame {
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
AppWithSound app = new AppWithSound();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.startApp();
}
});
}
public AppWithSound() {
initGUI();
}
private void startApp() {
playStartupSound();
setVisible(true);
}
private void endApp() {
System.exit(0);
}
private void playStartupSound() {
Runnable soundPlayer = new Runnable() {
public void run() {
try {
// use one of the WAV of Windows installation
File tadaSound = new File(System.getenv("windir") + "/" +
"media/tada.wav");
AudioInputStream audioInputStream = AudioSystem
.getAudioInputStream(new FileInputStream(tadaSound));
AudioFormat audioFormat = audioInputStream
.getFormat();
DataLine.Info dataLineInfo = new DataLine.Info(
Clip.class, audioFormat);
Clip clip = (Clip) AudioSystem
.getLine(dataLineInfo);
clip.open(audioInputStream);
clip.start();
} catch (Exception e) {
e.printStackTrace();
}
}
};
Thread soundPlayingThread = new Thread(soundPlayer);
soundPlayingThread.start();
}
private void initGUI() {
setSize(300, 200);
}
}
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com