java.lang.Object | |
↳ | javax.sound.sampled.AudioSystem |
The 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
directly from the
Line
AudioSystem
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 Sun 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(Line.Info) , getClip() |
javax.sound.sampled.Port |
Port |
getLine(Line.Info) |
javax.sound.sampled.SourceDataLine |
SourceDataLine |
getLine(Line.Info) , getSourceDataLine(AudioFormat) |
javax.sound.sampled.TargetDataLine |
TargetDataLine |
getLine(Line.Info) , getTargetDataLine(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
Mixer
that can be found in the list of all
mixers is returned.
If that fails, too, an IllegalArgumentException
is thrown.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | NOT_SPECIFIED | An integer that stands for an unknown numeric value. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Obtains the audio file format of the specified URL.
| |||||||||||
Obtains the audio file format of the specified
File . | |||||||||||
Obtains the audio file format of the provided input stream.
| |||||||||||
Obtains the file types for which file writing support is provided by the system.
| |||||||||||
Obtains the file types that the system can write from the
audio input stream specified.
| |||||||||||
Obtains an audio input stream from the URL provided.
| |||||||||||
Obtains an audio input stream of the indicated format, by converting the
provided audio input stream.
| |||||||||||
Obtains an audio input stream from the provided input stream.
| |||||||||||
Obtains an audio input stream of the indicated encoding, by converting the
provided audio input stream.
| |||||||||||
Obtains an audio input stream from the provided
File . | |||||||||||
Obtains a clip that can be used for playing back
an audio file or an audio stream.
| |||||||||||
Obtains a clip from the specified mixer that can be
used for playing back an audio file or an audio stream.
| |||||||||||
Obtains a line that matches the description in the specified
Line.Info object. | |||||||||||
Obtains the requested audio mixer.
| |||||||||||
Obtains an array of mixer info objects that represents
the set of audio mixers that are currently installed on the system.
| |||||||||||
Obtains a source data line that can be used for playing back
audio data in the format specified by the
AudioFormat object. | |||||||||||
Obtains a source data line that can be used for playing back
audio data in the format specified by the
AudioFormat object, provided by the mixer
specified by the Mixer.Info object. | |||||||||||
Obtains information about all source lines of a particular type that are supported
by the installed mixers.
| |||||||||||
Obtains a target data line that can be used for recording
audio data in the format specified by the
AudioFormat object. | |||||||||||
Obtains a target data line that can be used for recording
audio data in the format specified by the
AudioFormat object, provided by the mixer
specified by the Mixer.Info object. | |||||||||||
Obtains the encodings that the system can obtain from an
audio input stream with the specified format using the set
of installed format converters.
| |||||||||||
Obtains the encodings that the system can obtain from an
audio input stream with the specified encoding using the set
of installed format converters.
| |||||||||||
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.
| |||||||||||
Obtains information about all target lines of a particular type that are supported
by the installed mixers.
| |||||||||||
Indicates whether an audio input stream of the specified encoding
can be obtained from an audio input stream that has the specified
format.
| |||||||||||
Indicates whether an audio input stream of a specified format
can be obtained from an audio input stream of another specified format.
| |||||||||||
Indicates whether an audio file of the specified file type can be written
from the indicated audio input stream.
| |||||||||||
Indicates whether file writing support for the specified file type is provided
by the system.
| |||||||||||
Indicates whether the system supports any lines that match
the specified
Line.Info object. | |||||||||||
Writes a stream of bytes representing an audio file of the specified file type
to the output stream provided.
| |||||||||||
Writes a stream of bytes representing an audio file of the specified file type
to the external file provided.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
An integer that stands for an unknown numeric value.
This value is appropriate only for signed quantities that do not
normally take negative values. Examples include file sizes, frame
sizes, buffer sizes, and sample rates.
A number of Java Sound constructors accept
a value of NOT_SPECIFIED
for such parameters. Other
methods may also accept or return this value, as documented.
Obtains the audio file format of the specified URL. The URL must point to valid audio file data.
url | the URL from which file format information should be extracted |
---|
AudioFileFormat
object describing the audio file formatUnsupportedAudioFileException | if the URL does not point to valid audio file data recognized by the system |
---|---|
IOException | if an input/output exception occurs |
Obtains the audio file format of the specified File
. The File
must
point to valid audio file data.
file | the File from which file format information should be
extracted |
---|
AudioFileFormat
object describing the audio file formatUnsupportedAudioFileException | if the File does not point to valid audio
file data recognized by the system |
---|---|
IOException | if an I/O exception occurs |
Obtains the audio file format of the provided input stream. The stream must
point to valid audio file data. The implementation of this method may require
multiple parsers to examine the stream to determine whether they support it.
These parsers must be able to mark the stream, read enough data to determine whether they
support the stream, and, if not, reset the stream's read pointer to its original
position. If the input stream does not support these operations, this method may fail
with an IOException
.
stream | the input stream from which file format information should be extracted |
---|
AudioFileFormat
object describing the stream's audio file formatUnsupportedAudioFileException | if the stream does not point to valid audio file data recognized by the system |
---|---|
IOException | if an input/output exception occurs |
Obtains the file types for which file writing support is provided by the system.
Obtains the file types that the system can write from the audio input stream specified.
stream | the audio input stream for which audio file type support is queried |
---|
Obtains an audio input stream from the URL provided. The URL must point to valid audio file data.
url | the URL for which the AudioInputStream should be
constructed |
---|
AudioInputStream
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 system |
---|---|
IOException | if an I/O exception occurs |
Obtains an audio input stream of the indicated format, by converting the provided audio input stream.
targetFormat | the desired audio format after conversion |
---|---|
sourceStream | the stream to be converted |
IllegalArgumentException | if the conversion is not supported #see #getTargetEncodings(AudioFormat) |
---|
Obtains an audio input stream from the provided input stream. The stream must
point to valid audio file data. The implementation of this method may
require multiple parsers to
examine the stream to determine whether they support it. These parsers must
be able to mark the stream, read enough data to determine whether they
support the stream, and, if not, reset the stream's read pointer to its original
position. If the input stream does not support these operation, this method may fail
with an IOException
.
stream | the input stream from which the AudioInputStream should be
constructed |
---|
AudioInputStream
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 system |
---|---|
IOException | if an I/O exception occurs |
Obtains an audio input stream of the indicated encoding, by converting the provided audio input stream.
targetEncoding | the desired encoding after conversion |
---|---|
sourceStream | the stream to be converted |
IllegalArgumentException | if the conversion is not supported |
---|
Obtains an audio input stream from the provided File
. The File
must
point to valid audio file data.
file | the File for which the AudioInputStream should be
constructed |
---|
AudioInputStream
object based on the audio file data pointed
to by the File
UnsupportedAudioFileException | if the File does not point to valid audio
file data recognized by the system |
---|---|
IOException | if an I/O exception occurs |
Obtains a clip that can be used for playing back
an audio file or an audio stream. The returned clip
will be provided by the default system mixer, or,
if not possible, by any other mixer installed in the
system that supports a 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 restrictions |
---|---|
SecurityException | if a clip object is not available due to security restrictions |
IllegalArgumentException | if the system does not support at least one clip instance through any installed mixer |
Obtains a clip from the specified mixer that can be used for playing back an audio file or an audio stream.
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 mixer |
---|
LineUnavailableException | if a clip is not available from this mixer due to resource restrictions |
---|---|
SecurityException | if a clip is not available from this mixer due to security restrictions |
IllegalArgumentException | if the system does not support at least one clip through the specified mixer |
Obtains a line that matches the description in the specified
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 line |
---|
LineUnavailableException | if a matching line is not available due to resource restrictions |
---|---|
SecurityException | if a matching line is not available due to security restrictions |
IllegalArgumentException | if the system does not
support at least one line matching the specified
Line.Info object
through any installed mixer
|
Obtains the requested audio mixer.
info | a Mixer.Info object representing the desired
mixer, or null for the system default mixer |
---|
SecurityException | if the requested mixer is unavailable because of security restrictions |
---|---|
IllegalArgumentException | if the info object does not represent a mixer installed on the system |
Obtains an array of mixer info objects that represents the set of audio mixers that are currently installed on the system.
Obtains a source data line that can be used for playing back
audio data in the format specified by the
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 format |
---|
SourceDataLine
objectLineUnavailableException | if a matching source data line is not available due to resource restrictions |
---|---|
SecurityException | if a matching source data line is not available due to security restrictions |
IllegalArgumentException | if the system does not support at least one source data line supporting the specified audio format through any installed mixer |
Obtains a source data line that can be used for playing back
audio data in the format specified by the
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 format |
---|---|
mixerinfo | a Mixer.Info object representing
the desired mixer, or null for the system
default mixer |
SourceDataLine
objectLineUnavailableException | if a matching source data line is not available from the specified mixer due to resource restrictions |
---|---|
SecurityException | if a matching source data line is not available from the specified mixer due to security restrictions |
IllegalArgumentException | if the specified mixer does not support at least one source data line supporting the specified audio format |
Obtains information about all source lines of a particular type that are supported by the installed mixers.
info | a Line.Info object that specifies the kind of
lines about which information is requested |
---|
Line.Info
objects describing source lines matching
the type requested. If no matching source lines are supported, an array of length 0
is returned.Obtains a target data line that can be used for recording
audio data in the format specified by the
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
.
format | an AudioFormat object specifying
the supported audio format of the returned line,
or null for any audio format |
---|
TargetDataLine
objectLineUnavailableException | if a matching target data line is not available due to resource restrictions |
---|---|
SecurityException | if a matching target data line is not available due to security restrictions |
IllegalArgumentException | if the system does not support at least one target data line supporting the specified audio format through any installed mixer |
Obtains a target data line that can be used for recording
audio data in the format specified by the
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
.
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 format |
---|---|
mixerinfo | a Mixer.Info object representing the
desired mixer, or null for the system default mixer |
TargetDataLine
objectLineUnavailableException | if a matching target data line is not available from the specified mixer due to resource restrictions |
---|---|
SecurityException | if a matching target data line is not available from the specified mixer due to security restrictions |
IllegalArgumentException | if the specified mixer does not support at least one target data line supporting the specified audio format |
Obtains the encodings that the system can obtain from an audio input stream with the specified format using the set of installed format converters.
sourceFormat | the audio format for which conversion is queried |
---|
sourceFormat
is 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).
Obtains the encodings that the system can obtain from an audio input stream with the specified encoding using the set of installed format converters.
sourceEncoding | the encoding for which conversion support is queried |
---|
sourceEncoding
is not supported,
an array of length 0 is returned. Otherwise, the array will have a length
of at least 1, representing sourceEncoding
(no conversion).
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.
targetEncoding | the desired encoding after conversion |
---|---|
sourceFormat | the audio format before conversion |
Obtains information about all target lines of a particular type that are supported by the installed mixers.
info | a Line.Info object that specifies the kind of
lines about which information is requested |
---|
Line.Info
objects describing target lines matching
the type requested. If no matching target lines are supported, an array of length 0
is returned.Indicates whether an audio input stream of the specified encoding can be obtained from an audio input stream that has the specified format.
targetEncoding | the desired encoding after conversion |
---|---|
sourceFormat | the audio format before conversion |
true
if the conversion is supported,
otherwise false
Indicates whether an audio input stream of a specified format can be obtained from an audio input stream of another specified format.
targetFormat | the desired audio format after conversion |
---|---|
sourceFormat | the audio format before conversion |
true
if the conversion is supported,
otherwise false
Indicates whether an audio file of the specified file type can be written from the indicated audio input stream.
fileType | the file type for which write capabilities are queried |
---|---|
stream | the stream for which file-writing support is queried |
true
if the file type is supported for this audio input stream,
otherwise false
Indicates whether file writing support for the specified file type is provided by the system.
fileType | the file type for which write capabilities are queried |
---|
true
if the file type is supported,
otherwise false
Indicates whether the system supports any lines that match
the specified 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 queried |
---|
true
if at least one matching line is
supported, otherwise false
Writes a stream of bytes representing an audio file of the specified file type
to the output stream provided. Some file types require that
the length be written into the file header; such files cannot be written from
start to finish unless the length is known in advance. An attempt
to write a file of such a type will fail with an IOException if the length in
the audio file type is AudioSystem.NOT_SPECIFIED
.
stream | the audio input stream containing audio data to be written to the file |
---|---|
fileType | the kind of audio file to write |
out | the stream to which the file data should be written |
IOException | if an input/output exception occurs |
---|---|
IllegalArgumentException | if the file type is not supported by the system |
Writes a stream of bytes representing an audio file of the specified file type to the external file provided.
stream | the audio input stream containing audio data to be written to the file |
---|---|
fileType | the kind of audio file to write |
out | the external file to which the file data should be written |
IOException | if an I/O exception occurs |
---|---|
IllegalArgumentException | if the file type is not supported by the system |