AudioFocusRequestCompat.Builder
public
static
final
class
AudioFocusRequestCompat.Builder
extends Object
| java.lang.Object | |
| ↳ | androidx.media.AudioFocusRequestCompat.Builder |
Builder class for AudioFocusRequestCompat objects.
See AudioFocusRequestCompat for an example of building an instance with this
builder.
The default values for the instance to be built are:
| focus listener and handler | none |
AudioAttributesCompat | attributes with usage set to
AudioAttributesCompat.USAGE_MEDIA |
| pauses on duck | false |
| supports delayed focus grant | false |
In contrast to a AudioFocusRequest, attempting to build() an AudioFocusRequestCompat without an AudioManager.OnAudioFocusChangeListener will
throw an IllegalArgumentException, because the listener is required for all API
levels up to API 26.
Summary
Public constructors | |
|---|---|
Builder(int focusGain)
Constructs a new |
|
Builder(AudioFocusRequestCompat requestToCopy)
Constructs a new |
|
Inherited methods | |
|---|---|
Public constructors
Builder
public Builder (int focusGain)
Constructs a new Builder, and specifies how audio focus will be requested. Valid
values for focus requests are AudioManagerCompat.AUDIOFOCUS_GAIN,
AudioManagerCompat.AUDIOFOCUS_GAIN_TRANSIENT, and AudioManagerCompat.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, and AudioManagerCompat.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE.
AudioManagerCompat.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE is converted to
AudioManagerCompat.AUDIOFOCUS_GAIN_TRANSIENT on API levels previous to API 19.
By default there is no focus change listener, delayed focus is not supported, ducking
is suitable for the application, and the AudioAttributesCompat have a usage
of AudioAttributes.USAGE_MEDIA.
| Parameters | |
|---|---|
focusGain |
int: the type of audio focus gain that will be requested |
| Throws | |
|---|---|
IllegalArgumentException |
thrown when an invalid focus gain type is used |
Builder
public Builder (AudioFocusRequestCompat requestToCopy)
Constructs a new Builder with all the properties of the AudioFocusRequestCompat passed as parameter. Use this method when you want a new request
to differ only by some properties.
| Parameters | |
|---|---|
requestToCopy |
AudioFocusRequestCompat: the non-null AudioFocusRequestCompat to duplicate. |
| Throws | |
|---|---|
IllegalArgumentException |
thrown when a null AudioFocusRequestCompat is
used.
|
Public methods
build
public AudioFocusRequestCompat build ()
Builds a new AudioFocusRequestCompat instance combining all the information
gathered by this Builder's configuration methods.
| Returns | |
|---|---|
AudioFocusRequestCompat |
the AudioFocusRequestCompat instance qualified by all the properties set
on this Builder. |
| Throws | |
|---|---|
IllegalStateException |
thrown when attempting to build a focus request without a focus change listener set. |
setAudioAttributes
public AudioFocusRequestCompat.Builder setAudioAttributes (AudioAttributesCompat attributes)
Sets the AudioAttributesCompat to be associated with the focus request, and which
describe the use case for which focus is requested. As the focus requests typically
precede audio playback, this information is used on certain platforms to declare the
subsequent playback use case. It is therefore good practice to use in this method the
same AudioAttributesCompat as used for playback, see for example MediaPlayer.setAudioAttributes(AudioAttributes) in MediaPlayer or AudioTrack.Builder.setAudioAttributes(AudioAttributes) in
AudioTrack.
| Parameters | |
|---|---|
attributes |
AudioAttributesCompat: the AudioAttributesCompat for the focus request. |
| Returns | |
|---|---|
AudioFocusRequestCompat.Builder |
this Builder instance. |
| Throws | |
|---|---|
NullPointerException |
thrown when using null for the attributes. |
setFocusGain
public AudioFocusRequestCompat.Builder setFocusGain (int focusGain)
Sets the type of focus gain that will be requested. Use this method to replace the focus
gain when building a request by modifying an existing AudioFocusRequestCompat
instance.
| Parameters | |
|---|---|
focusGain |
int: the type of audio focus gain that will be requested. |
| Returns | |
|---|---|
AudioFocusRequestCompat.Builder |
this Builder instance |
| Throws | |
|---|---|
IllegalArgumentException |
thrown when an invalid focus gain type is used |
setOnAudioFocusChangeListener
public AudioFocusRequestCompat.Builder setOnAudioFocusChangeListener (AudioManager.OnAudioFocusChangeListener listener)
Sets the listener called when audio focus changes after being requested with AudioManagerCompat.requestAudioFocus(AudioManager, AudioFocusRequestCompat), and until
being abandoned with AudioManagerCompat.abandonAudioFocusRequest(AudioManager, AudioFocusRequestCompat). Note that only focus changes (gains and losses) affecting the
focus owner are reported, not gains and losses of other focus requesters in the system.
Notifications are delivered on the main thread.
| Parameters | |
|---|---|
listener |
AudioManager.OnAudioFocusChangeListener: the listener receiving the focus change notifications. |
| Returns | |
|---|---|
AudioFocusRequestCompat.Builder |
this Builder instance. |
| Throws | |
|---|---|
NullPointerException |
thrown when a null focus listener is used. |
setOnAudioFocusChangeListener
public AudioFocusRequestCompat.Builder setOnAudioFocusChangeListener (AudioManager.OnAudioFocusChangeListener listener, Handler handler)
Sets the listener called when audio focus changes after being requested with AudioManagerCompat.requestAudioFocus(AudioManager, AudioFocusRequestCompat), and until
being abandoned with AudioManagerCompat.abandonAudioFocusRequest(AudioManager, AudioFocusRequestCompat). Note that only focus changes (gains and losses) affecting the
focus owner are reported, not gains and losses of other focus requesters in the system.
| Parameters | |
|---|---|
listener |
AudioManager.OnAudioFocusChangeListener: the listener receiving the focus change notifications. |
handler |
Handler: the Handler for the thread on which to execute the notifications. |
| Returns | |
|---|---|
AudioFocusRequestCompat.Builder |
this Builder instance. |
| Throws | |
|---|---|
NullPointerException |
thrown when a null focus listener or handler is used. |
setWillPauseWhenDucked
public AudioFocusRequestCompat.Builder setWillPauseWhenDucked (boolean pauseOnDuck)
Declare the intended behavior of the application with regards to audio ducking. See more
details in the AudioFocusRequest class documentation. Setting pauseOnDuck to true
will only have an effect on Build.VERSION_CODES.O and later.
| Parameters | |
|---|---|
pauseOnDuck |
boolean: use true if the application intends to pause audio playback
when losing focus with AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK. |
| Returns | |
|---|---|
AudioFocusRequestCompat.Builder |
this Builder instance.
|