# AudioCapabilitiesReceiver

Artifact: [androidx.media3:media3-exoplayer](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver.java+class:androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver)

*** ** * ** ***


```
@UnstableApi
public final class AudioCapabilitiesReceiver
```

<br />

*** ** * ** ***

Receives broadcast events indicating changes to the device's audio capabilities, notifying a `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver.Listener` when audio capability changes occur.

## Summary

| ### Nested types |
|---|
| `public interface https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver.Listener` Listener notified when audio capabilities change. |

| ### Public constructors |
|---|
| `[AudioCapabilitiesReceiver](https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#AudioCapabilitiesReceiver(android.content.Context,androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.Listener))( https://developer.android.com/reference/android/content/Context.html context, https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver.Listener listener )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#AudioCapabilitiesReceiver(android.content.Context,androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.Listener,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#AudioCapabilitiesReceiver(android.content.Context,androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.Listener,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo)( https://developer.android.com/reference/android/content/Context.html context, https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver.Listener listener, https://developer.android.com/reference/androidx/media3/common/AudioAttributes audioAttributes, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/AudioDeviceInfo.html routedDevice )` |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#overrideCapabilities(androidx.media3.exoplayer.audio.AudioCapabilities)(https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilities audioCapabilities)` Overrides the reported audio capabilities until the next event that triggers a new evaluation of the capabilities. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilities` | `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#register()()` Registers the receiver, meaning it will notify the listener when audio capability changes occur. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#setAudioAttributes(androidx.media3.common.AudioAttributes)(https://developer.android.com/reference/androidx/media3/common/AudioAttributes audioAttributes)` Updates the `https://developer.android.com/reference/androidx/media3/common/AudioAttributes` used by this instance. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#setRoutedDevice(android.media.AudioDeviceInfo)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/AudioDeviceInfo.html routedDevice)` Updates the `https://developer.android.com/reference/android/media/AudioDeviceInfo.html` audio will be routed to. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#unregister()()` Unregisters the receiver, meaning it will no longer notify the listener when audio capability changes occur. |

## Public constructors

### AudioCapabilitiesReceiver

```
public [AudioCapabilitiesReceiver](https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#AudioCapabilitiesReceiver(android.content.Context,androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.Listener))(
    Context context,
    AudioCapabilitiesReceiver.Listener listener
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#AudioCapabilitiesReceiver(android.content.Context,androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.Listener,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo)` instead.

### AudioCapabilitiesReceiver

```
public AudioCapabilitiesReceiver(
    Context context,
    AudioCapabilitiesReceiver.Listener listener,
    AudioAttributes audioAttributes,
    @Nullable AudioDeviceInfo routedDevice
)
```

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/content/Context.html context` | A context for registering the receiver. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver.Listener listener` | The listener to notify when audio capabilities change. |
| `https://developer.android.com/reference/androidx/media3/common/AudioAttributes audioAttributes` | The `https://developer.android.com/reference/androidx/media3/common/AudioAttributes`. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/AudioDeviceInfo.html routedDevice` | The `https://developer.android.com/reference/android/media/AudioDeviceInfo.html` audio will be routed to if known, or null to assume the default route. |

## Public methods

### overrideCapabilities

```
public void overrideCapabilities(AudioCapabilities audioCapabilities)
```

Overrides the reported audio capabilities until the next event that triggers a new evaluation of the capabilities.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilities audioCapabilities` | The `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilities`. |

### register

```
public AudioCapabilities register()
```

Registers the receiver, meaning it will notify the listener when audio capability changes occur. The current audio capabilities will be returned. It is important to call `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilitiesReceiver#unregister()` when the receiver is no longer required.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioCapabilities` | The current audio capabilities for the device. |

### setAudioAttributes

```
public void setAudioAttributes(AudioAttributes audioAttributes)
```

Updates the `https://developer.android.com/reference/androidx/media3/common/AudioAttributes` used by this instance.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/AudioAttributes audioAttributes` | The `https://developer.android.com/reference/androidx/media3/common/AudioAttributes`. |

### setRoutedDevice

```
public void setRoutedDevice(@Nullable AudioDeviceInfo routedDevice)
```

Updates the `https://developer.android.com/reference/android/media/AudioDeviceInfo.html` audio will be routed to.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/AudioDeviceInfo.html routedDevice` | The `https://developer.android.com/reference/android/media/AudioDeviceInfo.html` audio will be routed to if known, or null to assume the default route. |

### unregister

```
public void unregister()
```

Unregisters the receiver, meaning it will no longer notify the listener when audio capability changes occur.