You are on page 1of 1

Simple Audio

Now we'll turn from images and open our ears to audio. The Java Sound API became a core
API in Java 1.3. It provides fine-grained support for the creation and manipulation of both
sampled audio and MIDI music. There's space here only to scratch the surface by examining
how to play simple sampled sound and MIDI music files. With the standard Java Sound
support bundled with Java you can play a wide range of file formats including AIFF, AU,
Windows WAV, standard MIDI files, and Rich Music Format (RMF) files.
java.applet.AudioClip defines the simplest interface for objects that can play sound. An
object that implements AudioClip can be told to play( ) its sound data, stop( ) playing
the sound, or loop( ) continuously.

The Applet class provides a handy static method, newAudioClip( ), that retrieves sounds
from files or over the network. (And there is no reason we can't use it in a non-applet
application.) The method takes an absolute or relative URL to specify where the audio file is
located and returns an AudioClip. The following application, NoisyButton, gives a simple
example:
//file: NoisyButton.java
import java.applet.*; import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NoisyButton {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame("NoisyButton");
java.io.File file = new java.io.File( args[0] );
final AudioClip sound = Applet.newAudioClip(file.toURL(

));

JButton button = new JButton("Woof!");


button.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent e) { sound.play(
});

); }

Container content = frame.getContentPane( );


content.setBackground(Color.pink);
content.setLayout(new GridBagLayout( ));
content.add(button);
frame.setVisible(true);
frame.setSize(200, 200);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setVisible(true);
}

Run NoisyButton, passing the name of the audio file you wish to use as the argument.
(We've supplied one called bark.aiff.) NoisyButton retrieves the AudioClip using a File
and the toURL( )method to reference it as a URL. When the button is pushed, we call the
play( ) method of the AudioClip to start things. After that, it plays to completion unless we
call the stop( ) method to interrupt it.
This interface is simple, but there is a lot of machinery behind the scenes.

You might also like