# Package javax.sound.sampled

package javax.sound.sampled
Provides interfaces and classes for capture, processing, and playback of sampled audio data.

## Related Documentation

For more information on using Java Sound see:

- The Java Sound Tutorial

Please note: In the `javax.sound.sampled` APIs, a `null` reference parameter to methods is incorrect unless explicitly documented on the method as having a meaningful interpretation. Usage to the contrary is incorrect coding and may result in a run time exception either immediately or at some later time. `NullPointerException` is an example of typical and acceptable run time exception for such cases.

Since:
  1.3

- Related Packages
  Package
  Description
  javax.sound
  Provides interfaces and classes for the Java Sound API.
  javax.sound.sampled.spi
  Supplies abstract classes for service providers to subclass when offering new audio devices, sound file readers and writers, or audio format converters.
  javax.sound.midi
  Provides interfaces and classes for I/O, sequencing, and synthesis of MIDI (Musical Instrument Digital Interface) data.
- Class
  Description
  AudioFileFormat
  An instance of the `AudioFileFormat` class describes an audio file, including the file type, the file's length in bytes, the length in sample frames of the audio data contained in the file, and the format of the audio data.
  AudioFileFormat.Type
  An instance of the `Type` class represents one of the standard types of audio file.
  AudioFormat
  `AudioFormat` is the class that specifies a particular arrangement of data in a sound stream.
  AudioFormat.Encoding
  The `Encoding` class names the specific type of data representation used for an audio stream.
  AudioInputStream
  An audio input stream is an input stream with a specified audio format and length.
  AudioPermission
  Deprecated, for removal: This API element is subject to removal in a future version.
  There is no replacement for this class.
  AudioSystem
  The `AudioSystem` class acts as the entry point to the sampled-audio system resources.
  BooleanControl
  A `BooleanControl` provides the ability to switch between two possible settings that affect a line's audio.
  BooleanControl.Type
  An instance of the `BooleanControl.Type` class identifies one kind of boolean control.
  Clip
  The `Clip` interface represents a special kind of data line whose audio data can be loaded prior to playback, instead of being streamed in real time.
  CompoundControl
  A `CompoundControl`, such as a graphic equalizer, provides control over two or more related properties, each of which is itself represented as a `Control`.
  CompoundControl.Type
  An instance of the `CompoundControl.Type` inner class identifies one kind of compound control.
  Control
  `Lines` often have a set of controls, such as gain and pan, that affect the audio signal passing through the line.
  Control.Type
  An instance of the `Type` class represents the type of the control.
  DataLine
  `DataLine` adds media-related functionality to its superinterface, `Line`.
  DataLine.Info
  Besides the class information inherited from its superclass, `DataLine.Info` provides additional information specific to data lines.
  EnumControl
  An `EnumControl` provides control over a set of discrete possible values, each represented by an object.
  EnumControl.Type
  An instance of the `EnumControl.Type` inner class identifies one kind of enumerated control.
  FloatControl
  A `FloatControl` object provides control over a range of floating-point values.
  FloatControl.Type
  An instance of the `FloatControl.Type` inner class identifies one kind of float control.
  Line
  The `Line` interface represents a mono or multi-channel audio feed.
  Line.Info
  A `Line.Info` object contains information about a line.
  LineEvent
  The `LineEvent` class encapsulates information that a line sends its listeners whenever the line opens, closes, starts, or stops.
  LineEvent.Type
  The LineEvent.Type inner class identifies what kind of event occurred on a line.
  LineListener
  Instances of classes that implement the `LineListener` interface can register to receive events when a line's status changes.
  LineUnavailableException
  A `LineUnavailableException` is an exception indicating that a line cannot be opened because it is unavailable.
  Mixer
  A mixer is an audio device with one or more lines.
  Mixer.Info
  The `Mixer.Info` class represents information about an audio mixer, including the product's name, version, and vendor, along with a textual description.
  Port
  Ports are simple lines for input or output of audio to or from audio devices.
  Port.Info
  The `Port.Info` class extends `Line.Info` with additional information specific to ports, including the port's name and whether it is a source or a target for its mixer.
  ReverbType
  The `ReverbType` class provides methods for accessing various reverberation settings to be applied to an audio signal.
  SourceDataLine
  A source data line is a data line to which data may be written.
  TargetDataLine
  A target data line is a type of `DataLine` from which audio data can be read.
  UnsupportedAudioFileException
  An `UnsupportedAudioFileException` is an exception indicating that an operation failed because a file did not contain valid data of a recognized file type and format.