public static class AudioTrack.Builder extends Object
AudioTrack
objects.
Use this class to configure and create an AudioTrack
instance. By setting audio
attributes and audio format parameters, you indicate which of those vary from the default
behavior on the device.
Here is an example where Builder
is used to specify all AudioFormat
parameters, to be used by a new AudioTrack
instance:
AudioTrack player = new AudioTrack.Builder() .setAudioAttributes(new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_ALARM) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build()) .setAudioFormat(new AudioFormat.Builder() .setEncoding(AudioFormat.ENCODING_PCM_16BIT) .setSampleRate(44100) .setChannelMask(AudioFormat.CHANNEL_OUT_STEREO) .build()) .setBufferSizeInBytes(minBuffSize) .build();
If the audio attributes are not set with setAudioAttributes(AudioAttributes)
,
attributes comprising AudioAttributes.USAGE_MEDIA
will be used.
If the audio format is not specified or is incomplete, its channel configuration will be
AudioFormat.CHANNEL_OUT_STEREO
and the encoding will be
AudioFormat.ENCODING_PCM_16BIT
.
The sample rate will depend on the device actually selected for playback and can be queried
with AudioTrack.getSampleRate()
method.
If the buffer size is not specified with setBufferSizeInBytes(int)
,
and the mode is AudioTrack.MODE_STREAM
, the minimum buffer size is used.
If the transfer mode is not specified with setTransferMode(int)
,
MODE_STREAM
will be used.
If the session ID is not specified with setSessionId(int)
, a new one will
be generated.
Constructor and Description |
---|
Builder()
Constructs a new Builder with the default values as described above.
|
Modifier and Type | Method and Description |
---|---|
AudioTrack |
build()
Builds an
AudioTrack instance initialized with all the parameters set
on this Builder . |
AudioTrack.Builder |
setAudioAttributes(AudioAttributes attributes)
Sets the
AudioAttributes . |
AudioTrack.Builder |
setAudioFormat(AudioFormat format)
Sets the format of the audio data to be played by the
AudioTrack . |
AudioTrack.Builder |
setBufferSizeInBytes(int bufferSizeInBytes)
Sets the total size (in bytes) of the buffer where audio data is read from for playback.
|
AudioTrack.Builder |
setSessionId(int sessionId)
Sets the session ID the
AudioTrack will be attached to. |
AudioTrack.Builder |
setTransferMode(int mode)
Sets the mode under which buffers of audio data are transferred from the
AudioTrack to the framework. |
public Builder()
public AudioTrack.Builder setAudioAttributes(AudioAttributes attributes) throws IllegalArgumentException
AudioAttributes
.attributes
- a non-null AudioAttributes
instance that describes the audio
data to be played.IllegalArgumentException
public AudioTrack.Builder setAudioFormat(AudioFormat format) throws IllegalArgumentException
AudioTrack
.
See AudioFormat.Builder
for configuring the audio format parameters such
as encoding, channel mask and sample rate.format
- a non-null AudioFormat
instance.IllegalArgumentException
public AudioTrack.Builder setBufferSizeInBytes(int bufferSizeInBytes) throws IllegalArgumentException
AudioTrack
in streaming mode
(see AudioTrack.MODE_STREAM
, you can write data into this buffer in smaller
chunks than this size. See AudioTrack.getMinBufferSize(int, int, int)
to determine
the estimated minimum buffer size for the creation of an AudioTrack instance
in streaming mode.
AudioTrack
in static mode (see
AudioTrack.MODE_STATIC
), this is the maximum size of the sound that will be
played by this instance.bufferSizeInBytes
- IllegalArgumentException
public AudioTrack.Builder setTransferMode(int mode) throws IllegalArgumentException
AudioTrack
to the framework.mode
- one of AudioTrack.MODE_STREAM
, AudioTrack.MODE_STATIC
.IllegalArgumentException
public AudioTrack.Builder setSessionId(int sessionId) throws IllegalArgumentException
AudioTrack
will be attached to.sessionId
- a strictly positive ID number retrieved from another
AudioTrack
via AudioTrack.getAudioSessionId()
or allocated by
AudioManager
via AudioManager.generateAudioSessionId()
, or
AudioManager.AUDIO_SESSION_ID_GENERATE
.IllegalArgumentException
public AudioTrack build() throws UnsupportedOperationException
AudioTrack
instance initialized with all the parameters set
on this Builder
.AudioTrack
instance.UnsupportedOperationException
- if the parameters set on the Builder
were incompatible, or if they are not supported by the device,
or if the device was not available.