Package com.google.android.exoplayer2.audio

## Class AudioCapabilities

- java.lang.Object
- - com.google.android.exoplayer2.audio.AudioCapabilities

-     public final class AudioCapabilities
      extends Object

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

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static AudioCapabilities` | `DEFAULT_AUDIO_CAPABILITIES` | The minimum audio capabilities supported by all devices.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AudioCapabilities​(int[] supportedEncodings, int maxChannelCount)` | Constructs new audio capabilities based on a set of supported encodings and a maximum channel count.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object other)` |
    `static AudioCapabilities` | `getCapabilities​(Context context)` | Returns the current audio capabilities for the device.
    `Pair<Integer,​Integer>` | `getEncodingAndChannelConfigForPassthrough​(Format format)` | Returns the encoding and channel config to use when configuring an `AudioTrack` in passthrough mode for the specified `Format`.
    `int` | `getMaxChannelCount()` | Returns the maximum number of channels the device can play at the same time.
    `int` | `hashCode()` |
    `boolean` | `isPassthroughPlaybackSupported​(Format format)` | Returns whether the device can do passthrough playback for `format`.
    `boolean` | `supportsEncoding​(@com.google.android.exoplayer2.C.Encoding int encoding)` | Returns whether this device supports playback of the specified audio `encoding`.
    `String` | `toString()` |

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_AUDIO_CAPABILITIES

          public static final AudioCapabilities DEFAULT_AUDIO_CAPABILITIES

      The minimum audio capabilities supported by all devices.

  - ### Constructor Detail

    - #### AudioCapabilities

          public AudioCapabilities​(@Nullable
                                   int[] supportedEncodings,
                                   int maxChannelCount)

      Constructs new audio capabilities based on a set of supported encodings and a maximum channel count.

      Applications should generally call `getCapabilities(Context)` to obtain an instance based on the capabilities advertised by the platform, rather than calling this constructor.

      Parameters:
        `supportedEncodings` - Supported audio encodings from `AudioFormat`'s `ENCODING_*` constants. Passing `null` indicates that no encodings are supported.
        `maxChannelCount` - The maximum number of audio channels that can be played simultaneously.

  - ### Method Detail

    - #### getCapabilities

          public static AudioCapabilities getCapabilities​(Context context)

      Returns the current audio capabilities for the device.
      Parameters:
        `context` - A context for obtaining the current audio capabilities.
      Returns:
        The current audio capabilities for the device.

    - #### supportsEncoding

          public boolean supportsEncoding​(@com.google.android.exoplayer2.C.Encoding int encoding)

      Returns whether this device supports playback of the specified audio `encoding`.
      Parameters:
        `encoding` - One of `C.Encoding`'s `ENCODING_*` constants.
      Returns:
        Whether this device supports playback the specified audio `encoding`.

    - #### getMaxChannelCount

          public int getMaxChannelCount()

      Returns the maximum number of channels the device can play at the same time.

    - #### isPassthroughPlaybackSupported

          public boolean isPassthroughPlaybackSupported​(Format format)

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

    - #### getEncodingAndChannelConfigForPassthrough

          @Nullable
          public Pair<Integer,​Integer> getEncodingAndChannelConfigForPassthrough​(Format format)

      Returns the encoding and channel config to use when configuring an `AudioTrack` in passthrough mode for the specified `Format`. Returns `null` if passthrough of the format is unsupported.
      Parameters:
        `format` - The `Format`.
      Returns:
        The encoding and channel config to use, or `null` if passthrough of the format is unsupported.

    - #### equals

          public boolean equals​(@Nullable
                                Object other)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`