Package com.google.android.exoplayer2.source

## Class MediaPeriodId

- java.lang.Object
- - com.google.android.exoplayer2.source.MediaPeriodId

- Direct Known Subclasses:
    `MediaSource.MediaPeriodId`

      public class MediaPeriodId
      extends Object

  Identifies a specific playback of a `Timeline.Period`.

  A `Timeline.Period` can be played multiple times, for example if it is repeated. Each instances of this class identifies a specific playback of a `Timeline.Period`.

  In ExoPlayer's implementation, `MediaPeriodId` identifies a `MediaPeriod`.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `int` | `adGroupIndex` | If the media period is in an ad group, the index of the ad group in the period.
    `int` | `adIndexInAdGroup` | If the media period is in an ad group, the index of the ad in its ad group in the period.
    `int` | `nextAdGroupIndex` | The index of the next ad group to which the media period's content is clipped, or `C.INDEX_UNSET` if there is no following ad group or if this media period is an ad.
    `Object` | `periodUid` | The unique id of the timeline period.
    `long` | `windowSequenceNumber` | The sequence number of the window in the buffered sequence of windows this media period is part of.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `MediaPeriodId​(MediaPeriodId mediaPeriodId)` | Copy constructor for inheritance.
    `` | `MediaPeriodId​(Object periodUid)` | Creates a media period identifier for a period which is not part of a buffered sequence of windows.
    `` | `MediaPeriodId​(Object periodUid, int adGroupIndex, int adIndexInAdGroup, long windowSequenceNumber)` | Creates a media period identifier that identifies an ad within an ad group at the specified timeline period.
    `` | `MediaPeriodId​(Object periodUid, long windowSequenceNumber)` | Creates a media period identifier for the specified period in the timeline.
    `` | `MediaPeriodId​(Object periodUid, long windowSequenceNumber, int nextAdGroupIndex)` | Creates a media period identifier for the specified clipped period in the timeline.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `MediaPeriodId` | `copyWithPeriodUid​(Object newPeriodUid)` | Returns a copy of this period identifier but with `newPeriodUid` as its period uid.
    `MediaPeriodId` | `copyWithWindowSequenceNumber​(long windowSequenceNumber)` | Returns a copy of this period identifier with a new `windowSequenceNumber`.
    `boolean` | `equals​(Object obj)` |
    `int` | `hashCode()` |
    `boolean` | `isAd()` | Returns whether this period identifier identifies an ad in an ad group in a period.

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

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

- - ### Field Detail

    - #### periodUid

          public final Object periodUid

      The unique id of the timeline period.

    - #### adGroupIndex

          public final int adGroupIndex

      If the media period is in an ad group, the index of the ad group in the period. `C.INDEX_UNSET` otherwise.

    - #### adIndexInAdGroup

          public final int adIndexInAdGroup

      If the media period is in an ad group, the index of the ad in its ad group in the period. `C.INDEX_UNSET` otherwise.

    - #### windowSequenceNumber

          public final long windowSequenceNumber

      The sequence number of the window in the buffered sequence of windows this media period is part of. `C.INDEX_UNSET` if the media period id is not part of a buffered sequence of windows.

    - #### nextAdGroupIndex

          public final int nextAdGroupIndex

      The index of the next ad group to which the media period's content is clipped, or `C.INDEX_UNSET` if there is no following ad group or if this media period is an ad.

  - ### Constructor Detail

    - #### MediaPeriodId

          public MediaPeriodId​(Object periodUid)

      Creates a media period identifier for a period which is not part of a buffered sequence of windows.
      Parameters:
        `periodUid` - The unique id of the timeline period.

    - #### MediaPeriodId

          public MediaPeriodId​(Object periodUid,
                               long windowSequenceNumber)

      Creates a media period identifier for the specified period in the timeline.
      Parameters:
        `periodUid` - The unique id of the timeline period.
        `windowSequenceNumber` - The sequence number of the window in the buffered sequence of windows this media period is part of.

    - #### MediaPeriodId

          public MediaPeriodId​(Object periodUid,
                               long windowSequenceNumber,
                               int nextAdGroupIndex)

      Creates a media period identifier for the specified clipped period in the timeline.
      Parameters:
        `periodUid` - The unique id of the timeline period.
        `windowSequenceNumber` - The sequence number of the window in the buffered sequence of windows this media period is part of.
        `nextAdGroupIndex` - The index of the next ad group to which the media period's content is clipped.

    - #### MediaPeriodId

          public MediaPeriodId​(Object periodUid,
                               int adGroupIndex,
                               int adIndexInAdGroup,
                               long windowSequenceNumber)

      Creates a media period identifier that identifies an ad within an ad group at the specified timeline period.
      Parameters:
        `periodUid` - The unique id of the timeline period that contains the ad group.
        `adGroupIndex` - The index of the ad group.
        `adIndexInAdGroup` - The index of the ad in the ad group.
        `windowSequenceNumber` - The sequence number of the window in the buffered sequence of windows this media period is part of.

    - #### MediaPeriodId

          protected MediaPeriodId​(MediaPeriodId mediaPeriodId)

      Copy constructor for inheritance.

  - ### Method Detail

    - #### copyWithPeriodUid

          public MediaPeriodId copyWithPeriodUid​(Object newPeriodUid)

      Returns a copy of this period identifier but with `newPeriodUid` as its period uid.

    - #### copyWithWindowSequenceNumber

          public MediaPeriodId copyWithWindowSequenceNumber​(long windowSequenceNumber)

      Returns a copy of this period identifier with a new `windowSequenceNumber`.

    - #### isAd

          public boolean isAd()

      Returns whether this period identifier identifies an ad in an ad group in a period.

    - #### equals

          public boolean equals​(@Nullable
                                Object obj)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`