Package com.google.android.exoplayer2

## Class SimpleBasePlayer.State

- java.lang.Object
- - com.google.android.exoplayer2.SimpleBasePlayer.State

- Enclosing class:
    SimpleBasePlayer

      protected static final class SimpleBasePlayer.State
      extends Object

  An immutable state description of the player.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `SimpleBasePlayer.State.Builder` | A builder for `SimpleBasePlayer.State` objects.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `SimpleBasePlayer.PositionSupplier` | `adBufferedPositionMsSupplier` | The `SimpleBasePlayer.PositionSupplier` for the estimated position up to which the currently playing ad is buffered, in milliseconds.
    `SimpleBasePlayer.PositionSupplier` | `adPositionMsSupplier` | The `SimpleBasePlayer.PositionSupplier` for the current ad playback position in milliseconds.
    `AudioAttributes` | `audioAttributes` | The current `AudioAttributes`.
    `Player.Commands` | `availableCommands` | The available `Player.Commands`.
    `SimpleBasePlayer.PositionSupplier` | `contentBufferedPositionMsSupplier` | The `SimpleBasePlayer.PositionSupplier` for the estimated position up to which the currently playing content is buffered, in milliseconds, or `C.TIME_UNSET` to indicate the default start position.
    `SimpleBasePlayer.PositionSupplier` | `contentPositionMsSupplier` | The `SimpleBasePlayer.PositionSupplier` for the current content playback position in milliseconds, or `C.TIME_UNSET` to indicate the default start position.
    `int` | `currentAdGroupIndex` | The current ad group index, or `C.INDEX_UNSET` if no ad is playing.
    `int` | `currentAdIndexInAdGroup` | The current ad index in the ad group, or `C.INDEX_UNSET` if no ad is playing.
    `CueGroup` | `currentCues` | The current cues.
    `int` | `currentMediaItemIndex` | The current media item index, or `C.INDEX_UNSET` to assume the default first item of the playlist is played.
    `DeviceInfo` | `deviceInfo` | The `DeviceInfo`.
    `int` | `deviceVolume` | The current device volume.
    `long` | `discontinuityPositionMs` | The position, in milliseconds, in the current content or ad from which playback continued after the discontinuity.
    `boolean` | `hasPositionDiscontinuity` | Signals that a position discontinuity happened since the last update to the player.
    `boolean` | `isDeviceMuted` | Whether the device is muted.
    `boolean` | `isLoading` | Whether the player is currently loading its source.
    `long` | `maxSeekToPreviousPositionMs` | The maximum position for which `BasePlayer.seekToPrevious()` seeks to the previous item, in milliseconds.
    `boolean` | `newlyRenderedFirstFrame` | Whether a frame has been rendered for the first time since setting the surface, a rendering reset, or since the stream being rendered was changed.
    `PlaybackParameters` | `playbackParameters` | The currently active `PlaybackParameters`.
    `@com.google.android.exoplayer2.Player.State int` | `playbackState` | The state of the player.
    `@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int` | `playbackSuppressionReason` | The reason why playback is suppressed even if `SimpleBasePlayer.getPlayWhenReady()` is true.
    `PlaybackException` | `playerError` | The last error that caused playback to fail, or null if there was no error.
    `ImmutableList<SimpleBasePlayer.MediaItemData>` | `playlist` | The media items in the playlist.
    `MediaMetadata` | `playlistMetadata` | The playlist `MediaMetadata`.
    `boolean` | `playWhenReady` | Whether playback should proceed when ready and not suppressed.
    `@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int` | `playWhenReadyChangeReason` | The last reason for changing `playWhenReady`.
    `@com.google.android.exoplayer2.Player.DiscontinuityReason int` | `positionDiscontinuityReason` | The reason for the last position discontinuity.
    `@com.google.android.exoplayer2.Player.RepeatMode int` | `repeatMode` | The `Player.RepeatMode` used for playback.
    `long` | `seekBackIncrementMs` | The `Player.seekBack()` increment in milliseconds.
    `long` | `seekForwardIncrementMs` | The `Player.seekForward()` increment in milliseconds.
    `boolean` | `shuffleModeEnabled` | Whether shuffling of media items is enabled.
    `Size` | `surfaceSize` | The size of the surface onto which the video is being rendered.
    `Metadata` | `timedMetadata` | The most recent timed metadata.
    `Timeline` | `timeline` | The `Timeline` derived from the `playlist`.
    `SimpleBasePlayer.PositionSupplier` | `totalBufferedDurationMsSupplier` | The `SimpleBasePlayer.PositionSupplier` for the estimated total buffered duration in milliseconds.
    `TrackSelectionParameters` | `trackSelectionParameters` | The currently active `TrackSelectionParameters`.
    `VideoSize` | `videoSize` | The current video size.
    `float` | `volume` | The current audio volume, with 0 being silence and 1 being unity gain (signal unchanged).

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `SimpleBasePlayer.State.Builder` | `buildUpon()` | Returns a `SimpleBasePlayer.State.Builder` pre-populated with the current state values.
    `boolean` | `equals​(Object o)` |
    `int` | `hashCode()` |

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

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

- - ### Field Detail

    - #### availableCommands

          public final Player.Commands availableCommands

      The available `Player.Commands`.

    - #### playWhenReady

          public final boolean playWhenReady

      Whether playback should proceed when ready and not suppressed.

    - #### playWhenReadyChangeReason

          @PlayWhenReadyChangeReason
          public final @com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int playWhenReadyChangeReason

      The last reason for changing `playWhenReady`.

    - #### playbackState

          @State
          public final @com.google.android.exoplayer2.Player.State int playbackState

      The state of the player.

    - #### playbackSuppressionReason

          @PlaybackSuppressionReason
          public final @com.google.android.exoplayer2.Player.PlaybackSuppressionReason int playbackSuppressionReason

      The reason why playback is suppressed even if `SimpleBasePlayer.getPlayWhenReady()` is true.

    - #### playerError

          @Nullable
          public final PlaybackException playerError

      The last error that caused playback to fail, or null if there was no error.

    - #### repeatMode

          @RepeatMode
          public final @com.google.android.exoplayer2.Player.RepeatMode int repeatMode

      The `Player.RepeatMode` used for playback.

    - #### shuffleModeEnabled

          public final boolean shuffleModeEnabled

      Whether shuffling of media items is enabled.

    - #### isLoading

          public final boolean isLoading

      Whether the player is currently loading its source.

    - #### seekBackIncrementMs

          public final long seekBackIncrementMs

      The `Player.seekBack()` increment in milliseconds.

    - #### seekForwardIncrementMs

          public final long seekForwardIncrementMs

      The `Player.seekForward()` increment in milliseconds.

    - #### maxSeekToPreviousPositionMs

          public final long maxSeekToPreviousPositionMs

      The maximum position for which `BasePlayer.seekToPrevious()` seeks to the previous item, in milliseconds.

    - #### playbackParameters

          public final PlaybackParameters playbackParameters

      The currently active `PlaybackParameters`.

    - #### trackSelectionParameters

          public final TrackSelectionParameters trackSelectionParameters

      The currently active `TrackSelectionParameters`.

    - #### audioAttributes

          public final AudioAttributes audioAttributes

      The current `AudioAttributes`.

    - #### volume

          @FloatRange(from=0.0,
                      to=1.0)
          public final float volume

      The current audio volume, with 0 being silence and 1 being unity gain (signal unchanged).

    - #### videoSize

          public final VideoSize videoSize

      The current video size.

    - #### currentCues

          public final CueGroup currentCues

      The current cues.

    - #### deviceInfo

          public final DeviceInfo deviceInfo

      The `DeviceInfo`.

    - #### deviceVolume

          @IntRange(from=0L)
          public final int deviceVolume

      The current device volume.

    - #### isDeviceMuted

          public final boolean isDeviceMuted

      Whether the device is muted.

    - #### surfaceSize

          public final Size surfaceSize

      The size of the surface onto which the video is being rendered.

    - #### newlyRenderedFirstFrame

          public final boolean newlyRenderedFirstFrame

      Whether a frame has been rendered for the first time since setting the surface, a rendering reset, or since the stream being rendered was changed.

    - #### timedMetadata

          public final Metadata timedMetadata

      The most recent timed metadata.

    - #### playlist

          public final ImmutableList<SimpleBasePlayer.MediaItemData> playlist

      The media items in the playlist.

    - #### timeline

          public final Timeline timeline

      The `Timeline` derived from the `playlist`.

    - #### playlistMetadata

          public final MediaMetadata playlistMetadata

      The playlist `MediaMetadata`.

    - #### currentMediaItemIndex

          public final int currentMediaItemIndex

      The current media item index, or `C.INDEX_UNSET` to assume the default first item of the playlist is played.

    - #### currentAdGroupIndex

          public final int currentAdGroupIndex

      The current ad group index, or `C.INDEX_UNSET` if no ad is playing.

    - #### currentAdIndexInAdGroup

          public final int currentAdIndexInAdGroup

      The current ad index in the ad group, or `C.INDEX_UNSET` if no ad is playing.

    - #### contentPositionMsSupplier

          public final SimpleBasePlayer.PositionSupplier contentPositionMsSupplier

      The `SimpleBasePlayer.PositionSupplier` for the current content playback position in milliseconds, or `C.TIME_UNSET` to indicate the default start position.

    - #### adPositionMsSupplier

          public final SimpleBasePlayer.PositionSupplier adPositionMsSupplier

      The `SimpleBasePlayer.PositionSupplier` for the current ad playback position in milliseconds. The value is unused if no ad is playing.

    - #### contentBufferedPositionMsSupplier

          public final SimpleBasePlayer.PositionSupplier contentBufferedPositionMsSupplier

      The `SimpleBasePlayer.PositionSupplier` for the estimated position up to which the currently playing content is buffered, in milliseconds, or `C.TIME_UNSET` to indicate the default start position.

    - #### adBufferedPositionMsSupplier

          public final SimpleBasePlayer.PositionSupplier adBufferedPositionMsSupplier

      The `SimpleBasePlayer.PositionSupplier` for the estimated position up to which the currently playing ad is buffered, in milliseconds. The value is unused if no ad is playing.

    - #### totalBufferedDurationMsSupplier

          public final SimpleBasePlayer.PositionSupplier totalBufferedDurationMsSupplier

      The `SimpleBasePlayer.PositionSupplier` for the estimated total buffered duration in milliseconds.

    - #### hasPositionDiscontinuity

          public final boolean hasPositionDiscontinuity

      Signals that a position discontinuity happened since the last update to the player.

    - #### positionDiscontinuityReason

          @DiscontinuityReason
          public final @com.google.android.exoplayer2.Player.DiscontinuityReason int positionDiscontinuityReason

      The reason for the last position discontinuity. The value is unused if `hasPositionDiscontinuity` is `false`.

    - #### discontinuityPositionMs

          public final long discontinuityPositionMs

      The position, in milliseconds, in the current content or ad from which playback continued after the discontinuity. The value is unused if `hasPositionDiscontinuity` is `false`.

  - ### Method Detail

    - #### buildUpon

          public SimpleBasePlayer.State.Builder buildUpon()

      Returns a `SimpleBasePlayer.State.Builder` pre-populated with the current state values.

    - #### equals

          public boolean equals​(@Nullable
                                Object o)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`