# AudioCapabilities

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/AudioCapabilities.java+class:androidx.media3.exoplayer.audio.AudioCapabilities)

*** ** * ** ***


```
@UnstableApi
class AudioCapabilities
```

<br />

*** ** * ** ***

Represents the set of audio formats that a device is capable of playing.

## Summary

| ### Constants |
|---|---|
| `const https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#DEFAULT_AUDIO_CAPABILITIES()` The minimum audio capabilities supported by all devices. |

| ### Public constructors |
|---|
| `[AudioCapabilities](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#AudioCapabilities(int[],int))( supportedEncodings: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>?, maxChannelCount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getCapabilities(android.content.Context,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo)` instead. <br /> |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#equals(java.lang.Object)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities!` | `[getCapabilities](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getCapabilities(android.content.Context))(context: https://developer.android.com/reference/android/content/Context.html!)` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getCapabilities(android.content.Context,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo)` instead. <br /> |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities!` | `[getCapabilities](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getCapabilities(android.content.Context,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo))( context: https://developer.android.com/reference/android/content/Context.html!, audioAttributes: https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes!, routedDevice: https://developer.android.com/reference/android/media/AudioDeviceInfo.html? )` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getCapabilities(android.content.Context,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo,java.util.List<java.lang.Integer>)` instead. <br /> |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getCapabilities(android.content.Context,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo,java.util.List<java.lang.Integer>)( context: https://developer.android.com/reference/android/content/Context.html!, audioAttributes: https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes!, routedDevice: https://developer.android.com/reference/android/media/AudioDeviceInfo.html?, spatializerChannelMasks: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>! )` Returns the current audio capabilities. |
| `https://developer.android.com/reference/android/util/Pair.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>?` | `[getEncodingAndChannelConfigForPassthrough](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getEncodingAndChannelConfigForPassthrough(androidx.media3.common.Format))(format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!)` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getEncodingAndChannelConfigForPassthrough(androidx.media3.common.Format,androidx.media3.common.AudioAttributes)` instead. <br /> |
| `https://developer.android.com/reference/android/util/Pair.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>?` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getEncodingAndChannelConfigForPassthrough(androidx.media3.common.Format,androidx.media3.common.AudioAttributes)( format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!, audioAttributes: https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes! )` Returns the encoding and channel config to use when configuring an `https://developer.android.com/reference/android/media/AudioTrack.html` in passthrough mode for the specified `https://developer.android.com/reference/kotlin/androidx/media3/common/Format` and `https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#hashCode()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `[isPassthroughPlaybackSupported](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#isPassthroughPlaybackSupported(androidx.media3.common.Format))(format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!)` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#isPassthroughPlaybackSupported(androidx.media3.common.Format,androidx.media3.common.AudioAttributes)` instead. <br /> |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#isPassthroughPlaybackSupported(androidx.media3.common.Format,androidx.media3.common.AudioAttributes)( format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!, audioAttributes: https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes! )` Returns whether the device can do passthrough playback for `format`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#supportsEncoding(int)(@https://developer.android.com/reference/kotlin/androidx/media3/common/C.Encoding encoding: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns whether this device supports playback of the specified audio `encoding`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#toString()()` |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#maxChannelCount()` |
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#spatializerChannelMasks()` |
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#speakerLayoutChannelMasks()` |

## Constants

### DEFAULT_AUDIO_CAPABILITIES

```
const val DEFAULT_AUDIO_CAPABILITIES: AudioCapabilities!
```

The minimum audio capabilities supported by all devices.

## Public constructors

### AudioCapabilities

```
[AudioCapabilities](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#AudioCapabilities(int[],int))(
    supportedEncodings: IntArray<Int>?,
    maxChannelCount: Int
)
```

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

## Public functions

### equals

```
fun equals(other: Any?): Boolean
```

### getCapabilities

```
java-static fun [getCapabilities](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getCapabilities(android.content.Context))(context: Context!): AudioCapabilities!
```

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

### getCapabilities

```
java-static fun [getCapabilities](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getCapabilities(android.content.Context,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo))(
    context: Context!,
    audioAttributes: AudioAttributes!,
    routedDevice: AudioDeviceInfo?
): AudioCapabilities!
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getCapabilities(android.content.Context,androidx.media3.common.AudioAttributes,android.media.AudioDeviceInfo,java.util.List<java.lang.Integer>)` instead.

### getCapabilities

```
java-static fun getCapabilities(
    context: Context!,
    audioAttributes: AudioAttributes!,
    routedDevice: AudioDeviceInfo?,
    spatializerChannelMasks: (Mutable)List<Int!>!
): AudioCapabilities!
```

Returns the current audio capabilities.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html!` | A context for obtaining the current audio capabilities. |
| `audioAttributes: https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes` to obtain capabilities for. |
| `routedDevice: https://developer.android.com/reference/android/media/AudioDeviceInfo.html?` | The `https://developer.android.com/reference/android/media/AudioDeviceInfo.html` audio will be routed to if known, or null to assume the default route. |
| `spatializerChannelMasks: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>!` | The channel masks supported by the `https://developer.android.com/reference/android/media/Spatializer.html`, if enabled/available. |

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

### getEncodingAndChannelConfigForPassthrough

```
fun [getEncodingAndChannelConfigForPassthrough](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getEncodingAndChannelConfigForPassthrough(androidx.media3.common.Format))(format: Format!): Pair<Int!, Int!>?
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#getEncodingAndChannelConfigForPassthrough(androidx.media3.common.Format,androidx.media3.common.AudioAttributes)` instead.

### getEncodingAndChannelConfigForPassthrough

```
fun getEncodingAndChannelConfigForPassthrough(
    format: Format!,
    audioAttributes: AudioAttributes!
): Pair<Int!, Int!>?
```

Returns the encoding and channel config to use when configuring an `https://developer.android.com/reference/android/media/AudioTrack.html` in passthrough mode for the specified `https://developer.android.com/reference/kotlin/androidx/media3/common/Format` and `https://developer.android.com/reference/kotlin/androidx/media3/common/AudioAttributes`. Returns `
null` if passthrough of the format is unsupported.

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

| Returns |
|---|---|
| `https://developer.android.com/reference/android/util/Pair.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>?` | The encoding and channel config to use, or `null` if passthrough of the format is unsupported. |

### hashCode

```
fun hashCode(): Int
```

### isPassthroughPlaybackSupported

```
fun [isPassthroughPlaybackSupported](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#isPassthroughPlaybackSupported(androidx.media3.common.Format))(format: Format!): Boolean
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioCapabilities#isPassthroughPlaybackSupported(androidx.media3.common.Format,androidx.media3.common.AudioAttributes)` instead.

### isPassthroughPlaybackSupported

```
fun isPassthroughPlaybackSupported(
    format: Format!,
    audioAttributes: AudioAttributes!
): Boolean
```

Returns whether the device can do passthrough playback for `format`.

### supportsEncoding

```
fun supportsEncoding(@C.Encoding encoding: Int): Boolean
```

Returns whether this device supports playback of the specified audio `encoding`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/common/C.Encoding encoding: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | One of `https://developer.android.com/reference/kotlin/androidx/media3/common/C.Encoding`'s `ENCODING_*` constants. Value is one of the following: - `Format.NO_VALUE` <br /> |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether this device supports playback the specified audio `encoding`. |

### toString

```
fun toString(): String!
```

## Public properties

### maxChannelCount

```
val maxChannelCount: Int
```

### spatializerChannelMasks

```
val spatializerChannelMasks: ImmutableList<Int!>!
```

### speakerLayoutChannelMasks

```
val speakerLayoutChannelMasks: ImmutableList<Int!>!
```