public class AudioSystem extends Object
AudioSystem class acts as the entry point to the
 sampled-audio system resources. This class lets you query and
 access the mixers that are installed on the system.
 AudioSystem includes a number of
 methods for converting audio data between different formats, and for
 translating between audio files and streams. It also provides a method
 for obtaining a LineAudioSystem without dealing explicitly
 with mixers.
 Properties can be used to specify the default mixer
 for specific line types.
 Both system properties and a properties file are considered.
 In the Oracle reference implementation, the properties file is
 "lib/sound.properties" in the JRE
 directory. If a property exists both as a system property and in the
 properties file, the system property takes precedence. If none is
 specified, a suitable default is chosen among the available devices.
 The syntax of the properties file is specified in
 Properties.load. The
 following table lists the available property keys and which methods
 consider them:
 
| Property Key | Interface | Affected Method(s) | 
|---|---|---|
| javax.sound.sampled.Clip | Clip | getLine(javax.sound.sampled.Line.Info),getClip() | 
| javax.sound.sampled.Port | Port | getLine(javax.sound.sampled.Line.Info) | 
| javax.sound.sampled.SourceDataLine | SourceDataLine | getLine(javax.sound.sampled.Line.Info),getSourceDataLine(javax.sound.sampled.AudioFormat) | 
| javax.sound.sampled.TargetDataLine | TargetDataLine | getLine(javax.sound.sampled.Line.Info),getTargetDataLine(javax.sound.sampled.AudioFormat) | 
mixer provider class. The mixer name is matched against
 the String returned by the getName
 method of Mixer.Info.
 Either the class name, or the mixer name may be omitted.
 If only the class name is specified, the trailing hash mark
 is optional.
 If the provider class is specified, and it can be
 successully retrieved from the installed providers, the list of
 Mixer.Info objects is retrieved
 from the provider. Otherwise, or when these mixers
 do not provide a subsequent match, the list is retrieved
 from getMixerInfo() to contain
 all available Mixer.Info objects.
 
If a mixer name is specified, the resulting list of
 Mixer.Info objects is searched:
 the first one with a matching name, and whose
 Mixer provides the
 respective line interface, will be returned.
 If no matching Mixer.Info object
 is found, or the mixer name is not specified,
 the first mixer from the resulting
 list, which provides the respective line
 interface, will be returned.
 For example, the property javax.sound.sampled.Clip
 with a value
 "com.sun.media.sound.MixerProvider#SunClip"
 will have the following consequences when
 getLine is called requesting a Clip
 instance:
 if the class com.sun.media.sound.MixerProvider exists
 in the list of installed mixer providers,
 the first Clip from the first mixer with name
 "SunClip" will be returned. If it cannot
 be found, the first Clip from the first mixer
 of the specified provider will be returned, regardless of name.
 If there is none, the first Clip from the first
 Mixer with name
 "SunClip" in the list of all mixers
 (as returned by getMixerInfo) will be returned,
 or, if not found, the first Clip of the first
 Mixerthat can be found in the list of all
 mixers is returned.
 If that fails, too, an IllegalArgumentException
 is thrown.
AudioFormat, 
AudioInputStream, 
Mixer, 
Line, 
Line.Info| Modifier and Type | Field and Description | 
|---|---|
| static int | NOT_SPECIFIEDAn integer that stands for an unknown numeric value. | 
| Modifier and Type | Method and Description | 
|---|---|
| static AudioFileFormat | getAudioFileFormat(File file)Obtains the audio file format of the specified  File. | 
| static AudioFileFormat | getAudioFileFormat(InputStream stream)Obtains the audio file format of the provided input stream. | 
| static AudioFileFormat | getAudioFileFormat(URL url)Obtains the audio file format of the specified URL. | 
| static AudioFileFormat.Type[] | getAudioFileTypes()Obtains the file types for which file writing support is provided by the system. | 
| static AudioFileFormat.Type[] | getAudioFileTypes(AudioInputStream stream)Obtains the file types that the system can write from the
 audio input stream specified. | 
| static AudioInputStream | getAudioInputStream(AudioFormat.Encoding targetEncoding,
                   AudioInputStream sourceStream)Obtains an audio input stream of the indicated encoding, by converting the
 provided audio input stream. | 
| static AudioInputStream | getAudioInputStream(AudioFormat targetFormat,
                   AudioInputStream sourceStream)Obtains an audio input stream of the indicated format, by converting the
 provided audio input stream. | 
| static AudioInputStream | getAudioInputStream(File file)Obtains an audio input stream from the provided  File. | 
| static AudioInputStream | getAudioInputStream(InputStream stream)Obtains an audio input stream from the provided input stream. | 
| static AudioInputStream | getAudioInputStream(URL url)Obtains an audio input stream from the URL provided. | 
| static Clip | getClip()Obtains a clip that can be used for playing back
 an audio file or an audio stream. | 
| static Clip | getClip(Mixer.Info mixerInfo)Obtains a clip from the specified mixer that can be
 used for playing back an audio file or an audio stream. | 
| static Line | getLine(Line.Info info)Obtains a line that matches the description in the specified
  Line.Infoobject. | 
| static Mixer | getMixer(Mixer.Info info)Obtains the requested audio mixer. | 
| static Mixer.Info[] | getMixerInfo()Obtains an array of mixer info objects that represents
 the set of audio mixers that are currently installed on the system. | 
| static SourceDataLine | getSourceDataLine(AudioFormat format)Obtains a source data line that can be used for playing back
 audio data in the format specified by the
  AudioFormatobject. | 
| static SourceDataLine | getSourceDataLine(AudioFormat format,
                 Mixer.Info mixerinfo)Obtains a source data line that can be used for playing back
 audio data in the format specified by the
  AudioFormatobject, provided by the mixer
 specified by theMixer.Infoobject. | 
| static Line.Info[] | getSourceLineInfo(Line.Info info)Obtains information about all source lines of a particular type that are supported
 by the installed mixers. | 
| static TargetDataLine | getTargetDataLine(AudioFormat format)Obtains a target data line that can be used for recording
 audio data in the format specified by the
  AudioFormatobject. | 
| static TargetDataLine | getTargetDataLine(AudioFormat format,
                 Mixer.Info mixerinfo)Obtains a target data line that can be used for recording
 audio data in the format specified by the
  AudioFormatobject, provided by the mixer
 specified by theMixer.Infoobject. | 
| static AudioFormat.Encoding[] | getTargetEncodings(AudioFormat.Encoding sourceEncoding)Obtains the encodings that the system can obtain from an
 audio input stream with the specified encoding using the set
 of installed format converters. | 
| static AudioFormat.Encoding[] | getTargetEncodings(AudioFormat sourceFormat)Obtains the encodings that the system can obtain from an
 audio input stream with the specified format using the set
 of installed format converters. | 
| static AudioFormat[] | getTargetFormats(AudioFormat.Encoding targetEncoding,
                AudioFormat sourceFormat)Obtains the formats that have a particular encoding and that the system can
 obtain from a stream of the specified format using the set of
 installed format converters. | 
| static Line.Info[] | getTargetLineInfo(Line.Info info)Obtains information about all target lines of a particular type that are supported
 by the installed mixers. | 
| static boolean | isConversionSupported(AudioFormat.Encoding targetEncoding,
                     AudioFormat sourceFormat)Indicates whether an audio input stream of the specified encoding
 can be obtained from an audio input stream that has the specified
 format. | 
| static boolean | isConversionSupported(AudioFormat targetFormat,
                     AudioFormat sourceFormat)Indicates whether an audio input stream of a specified format
 can be obtained from an audio input stream of another specified format. | 
| static boolean | isFileTypeSupported(AudioFileFormat.Type fileType)Indicates whether file writing support for the specified file type is provided
 by the system. | 
| static boolean | isFileTypeSupported(AudioFileFormat.Type fileType,
                   AudioInputStream stream)Indicates whether an audio file of the specified file type can be written
 from the indicated audio input stream. | 
| static boolean | isLineSupported(Line.Info info)Indicates whether the system supports any lines that match
 the specified  Line.Infoobject. | 
| static int | write(AudioInputStream stream,
     AudioFileFormat.Type fileType,
     File out)Writes a stream of bytes representing an audio file of the specified file type
 to the external file provided. | 
| static int | write(AudioInputStream stream,
     AudioFileFormat.Type fileType,
     OutputStream out)Writes a stream of bytes representing an audio file of the specified file type
 to the output stream provided. | 
public static final int NOT_SPECIFIED
NOT_SPECIFIED for such parameters.  Other
 methods may also accept or return this value, as documented.public static Mixer.Info[] getMixerInfo()
getMixer(javax.sound.sampled.Mixer.Info)public static Mixer getMixer(Mixer.Info info)
info - a Mixer.Info object representing the desired
 mixer, or null for the system default mixerSecurityException - if the requested mixer
 is unavailable because of security restrictionsIllegalArgumentException - if the info object does not represent
 a mixer installed on the systemgetMixerInfo()public static Line.Info[] getSourceLineInfo(Line.Info info)
info - a Line.Info object that specifies the kind of
 lines about which information is requestedLine.Info objects describing source lines matching
 the type requested.  If no matching source lines are supported, an array of length 0
 is returned.Mixer.getSourceLineInfo(Line.Info)public static Line.Info[] getTargetLineInfo(Line.Info info)
info - a Line.Info object that specifies the kind of
 lines about which information is requestedLine.Info objects describing target lines matching
 the type requested.  If no matching target lines are supported, an array of length 0
 is returned.Mixer.getTargetLineInfo(Line.Info)public static boolean isLineSupported(Line.Info info)
Line.Info object.  A line is supported if
 any installed mixer supports it.info - a Line.Info object describing the line for which support is queriedtrue if at least one matching line is
 supported, otherwise falseMixer.isLineSupported(Line.Info)public static Line getLine(Line.Info info) throws LineUnavailableException
Line.Info object.
 If a DataLine is requested, and info
 is an instance of DataLine.Info specifying at least
 one fully qualified audio format, the last one
 will be used as the default format of the returned
 DataLine.
 
If system properties
 javax.sound.sampled.Clip,
 javax.sound.sampled.Port,
 javax.sound.sampled.SourceDataLine and
 javax.sound.sampled.TargetDataLine are defined
 or they are defined in the file "sound.properties",
 they are used to retrieve default lines.
 For details, refer to the class description.
 If the respective property is not set, or the mixer
 requested in the property is not installed or does not provide the
 requested line, all installed mixers are queried for the
 requested line type. A Line will be returned from the first mixer
 providing the requested line type.
info - a Line.Info object describing the desired kind of lineLineUnavailableException - if a matching line
 is not available due to resource restrictionsSecurityException - if a matching line
 is not available due to security restrictionsIllegalArgumentException - if the system does not
 support at least one line matching the specified
 Line.Info object
 through any installed mixerpublic static Clip getClip() throws LineUnavailableException
Clip
 object.
 The returned clip must be opened with the
 open(AudioFormat) or
 open(AudioInputStream) method.
 
This is a high-level method that uses getMixer
 and getLine internally.
 
If the system property
 javax.sound.sampled.Clip
 is defined or it is defined in the file "sound.properties",
 it is used to retrieve the default clip.
 For details, refer to the class description.
LineUnavailableException - if a clip object
 is not available due to resource restrictionsSecurityException - if a clip object
 is not available due to security restrictionsIllegalArgumentException - if the system does not
 support at least one clip instance through any installed mixergetClip(Mixer.Info)public static Clip getClip(Mixer.Info mixerInfo) throws LineUnavailableException
The returned clip must be opened with the
 open(AudioFormat) or
 open(AudioInputStream) method.
 
This is a high-level method that uses getMixer
 and getLine internally.
mixerInfo - a Mixer.Info object representing the
 desired mixer, or null for the system default mixerLineUnavailableException - if a clip
 is not available from this mixer due to resource restrictionsSecurityException - if a clip
 is not available from this mixer due to security restrictionsIllegalArgumentException - if the system does not
 support at least one clip through the specified mixergetClip()public static SourceDataLine getSourceDataLine(AudioFormat format) throws LineUnavailableException
AudioFormat object. The returned line
 will be provided by the default system mixer, or,
 if not possible, by any other mixer installed in the
 system that supports a matching
 SourceDataLine object.
 The returned line should be opened with the
 open(AudioFormat) or
 open(AudioFormat, int) method.
 
This is a high-level method that uses getMixer
 and getLine internally.
 
The returned SourceDataLine's default
 audio format will be initialized with format.
 
If the system property
 javax.sound.sampled.SourceDataLine
 is defined or it is defined in the file "sound.properties",
 it is used to retrieve the default source data line.
 For details, refer to the class description.
format - an AudioFormat object specifying
        the supported audio format of the returned line,
        or null for any audio formatSourceDataLine objectLineUnavailableException - if a matching source data line
         is not available due to resource restrictionsSecurityException - if a matching source data line
         is not available due to security restrictionsIllegalArgumentException - if the system does not
         support at least one source data line supporting the
         specified audio format through any installed mixergetSourceDataLine(AudioFormat, Mixer.Info)public static SourceDataLine getSourceDataLine(AudioFormat format, Mixer.Info mixerinfo) throws LineUnavailableException
AudioFormat object, provided by the mixer
 specified by the Mixer.Info object.
 The returned line should be opened with the
 open(AudioFormat) or
 open(AudioFormat, int) method.
 
This is a high-level method that uses getMixer
 and getLine internally.
 
The returned SourceDataLine's default
 audio format will be initialized with format.
format - an AudioFormat object specifying
        the supported audio format of the returned line,
        or null for any audio formatmixerinfo - a Mixer.Info object representing
        the desired mixer, or null for the system
        default mixerSourceDataLine objectLineUnavailableException - if a matching source data
         line is not available from the specified mixer due
         to resource restrictionsSecurityException - if a matching source data line
         is not available from the specified mixer due to
         security restrictionsIllegalArgumentException - if the specified mixer does
         not support at least one source data line supporting
         the specified audio formatgetSourceDataLine(AudioFormat)public static TargetDataLine getTargetDataLine(AudioFormat format) throws LineUnavailableException
AudioFormat object. The returned line
 will be provided by the default system mixer, or,
 if not possible, by any other mixer installed in the
 system that supports a matching
 TargetDataLine object.
 The returned line should be opened with the
 open(AudioFormat) or
 open(AudioFormat, int) method.
 
This is a high-level method that uses getMixer
 and getLine internally.
 
The returned TargetDataLine's default
 audio format will be initialized with format.
 
If the system property
 javax.sound.sampled.TargetDataLine
 is defined or it is defined in the file "sound.properties",
 it is used to retrieve the default target data line.
 For details, refer to the class description.
format - an AudioFormat object specifying
        the supported audio format of the returned line,
        or null for any audio formatTargetDataLine objectLineUnavailableException - if a matching target data line
         is not available due to resource restrictionsSecurityException - if a matching target data line
         is not available due to security restrictionsIllegalArgumentException - if the system does not
         support at least one target data line supporting the
         specified audio format through any installed mixergetTargetDataLine(AudioFormat, Mixer.Info), 
AudioPermissionpublic static TargetDataLine getTargetDataLine(AudioFormat format, Mixer.Info mixerinfo) throws LineUnavailableException
AudioFormat object, provided by the mixer
 specified by the Mixer.Info object.
 The returned line should be opened with the
 open(AudioFormat) or
 open(AudioFormat, int) method.
 
This is a high-level method that uses getMixer
 and getLine internally.
 
The returned TargetDataLine's default
 audio format will be initialized with format.
format - an AudioFormat object specifying
        the supported audio format of the returned line,
        or null for any audio formatmixerinfo - a Mixer.Info object representing the
        desired mixer, or null for the system default mixerTargetDataLine objectLineUnavailableException - if a matching target data
         line is not available from the specified mixer due
         to resource restrictionsSecurityException - if a matching target data line
         is not available from the specified mixer due to
         security restrictionsIllegalArgumentException - if the specified mixer does
         not support at least one target data line supporting
         the specified audio formatgetTargetDataLine(AudioFormat), 
AudioPermissionpublic static AudioFormat.Encoding[] getTargetEncodings(AudioFormat.Encoding sourceEncoding)
sourceEncoding - the encoding for which conversion support
 is queriedsourceEncodingis not supported,
 an array of length 0 is returned. Otherwise, the array will have a length
 of at least 1, representing sourceEncoding (no conversion).public static AudioFormat.Encoding[] getTargetEncodings(AudioFormat sourceFormat)
sourceFormat - the audio format for which conversion
 is queriedsourceFormatis not supported,
 an array of length 0 is returned. Otherwise, the array will have a length
 of at least 1, representing the encoding of sourceFormat (no conversion).public static boolean isConversionSupported(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
targetEncoding - the desired encoding after conversionsourceFormat - the audio format before conversiontrue if the conversion is supported,
 otherwise falsepublic static AudioInputStream getAudioInputStream(AudioFormat.Encoding targetEncoding, AudioInputStream sourceStream)
targetEncoding - the desired encoding after conversionsourceStream - the stream to be convertedIllegalArgumentException - if the conversion is not supportedgetTargetEncodings(AudioFormat.Encoding), 
getTargetEncodings(AudioFormat), 
isConversionSupported(AudioFormat.Encoding, AudioFormat), 
getAudioInputStream(AudioFormat, AudioInputStream)public static AudioFormat[] getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
targetEncoding - the desired encoding after conversionsourceFormat - the audio format before conversionpublic static boolean isConversionSupported(AudioFormat targetFormat, AudioFormat sourceFormat)
targetFormat - the desired audio format after conversionsourceFormat - the audio format before conversiontrue if the conversion is supported,
 otherwise falsepublic static AudioInputStream getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream)
targetFormat - the desired audio format after conversionsourceStream - the stream to be convertedIllegalArgumentException - if the conversion is not supported
 #see #getTargetEncodings(AudioFormat)getTargetFormats(AudioFormat.Encoding, AudioFormat), 
isConversionSupported(AudioFormat, AudioFormat), 
getAudioInputStream(AudioFormat.Encoding, AudioInputStream)public static AudioFileFormat getAudioFileFormat(InputStream stream) throws UnsupportedAudioFileException, IOException
IOException.stream - the input stream from which file format information should be
 extractedAudioFileFormat object describing the stream's audio file formatUnsupportedAudioFileException - if the stream does not point to valid audio
 file data recognized by the systemIOException - if an input/output exception occursInputStream.markSupported(), 
InputStream.mark(int)public static AudioFileFormat getAudioFileFormat(URL url) throws UnsupportedAudioFileException, IOException
url - the URL from which file format information should be
 extractedAudioFileFormat object describing the audio file formatUnsupportedAudioFileException - if the URL does not point to valid audio
 file data recognized by the systemIOException - if an input/output exception occurspublic static AudioFileFormat getAudioFileFormat(File file) throws UnsupportedAudioFileException, IOException
File.  The File must
 point to valid audio file data.file - the File from which file format information should be
 extractedAudioFileFormat object describing the audio file formatUnsupportedAudioFileException - if the File does not point to valid audio
 file data recognized by the systemIOException - if an I/O exception occurspublic static AudioInputStream getAudioInputStream(InputStream stream) throws UnsupportedAudioFileException, IOException
IOException.stream - the input stream from which the AudioInputStream should be
 constructedAudioInputStream object based on the audio file data contained
 in the input stream.UnsupportedAudioFileException - if the stream does not point to valid audio
 file data recognized by the systemIOException - if an I/O exception occursInputStream.markSupported(), 
InputStream.mark(int)public static AudioInputStream getAudioInputStream(URL url) throws UnsupportedAudioFileException, IOException
url - the URL for which the AudioInputStream should be
 constructedAudioInputStream object based on the audio file data pointed
 to by the URLUnsupportedAudioFileException - if the URL does not point to valid audio
 file data recognized by the systemIOException - if an I/O exception occurspublic static AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException
File.  The File must
 point to valid audio file data.file - the File for which the AudioInputStream should be
 constructedAudioInputStream object based on the audio file data pointed
 to by the FileUnsupportedAudioFileException - if the File does not point to valid audio
 file data recognized by the systemIOException - if an I/O exception occurspublic static AudioFileFormat.Type[] getAudioFileTypes()
public static boolean isFileTypeSupported(AudioFileFormat.Type fileType)
fileType - the file type for which write capabilities are queriedtrue if the file type is supported,
 otherwise falsepublic static AudioFileFormat.Type[] getAudioFileTypes(AudioInputStream stream)
stream - the audio input stream for which audio file type support
 is queriedpublic static boolean isFileTypeSupported(AudioFileFormat.Type fileType, AudioInputStream stream)
fileType - the file type for which write capabilities are queriedstream - the stream for which file-writing support is queriedtrue if the file type is supported for this audio input stream,
 otherwise falsepublic static int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) throws IOException
AudioSystem.NOT_SPECIFIED.stream - the audio input stream containing audio data to be
 written to the filefileType - the kind of audio file to writeout - the stream to which the file data should be writtenIOException - if an input/output exception occursIllegalArgumentException - if the file type is not supported by
 the systemisFileTypeSupported(javax.sound.sampled.AudioFileFormat.Type), 
getAudioFileTypes()public static int write(AudioInputStream stream, AudioFileFormat.Type fileType, File out) throws IOException
stream - the audio input stream containing audio data to be
 written to the filefileType - the kind of audio file to writeout - the external file to which the file data should be writtenIOException - if an I/O exception occursIllegalArgumentException - if the file type is not supported by
 the systemisFileTypeSupported(javax.sound.sampled.AudioFileFormat.Type), 
getAudioFileTypes() Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2011, Oracle and/or its affiliates.  All rights reserved.