# DefaultDashChunkSource.RepresentationSegmentIterator

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

*** ** * ** ***


```
protected final class DefaultDashChunkSource.RepresentationSegmentIterator extends BaseMediaChunkIterator
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.media3.exoplayer.source.chunk.BaseMediaChunkIterator](https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/BaseMediaChunkIterator) ||
|   | ↳ | [androidx.media3.exoplayer.dash.DefaultDashChunkSource.RepresentationSegmentIterator](https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationSegmentIterator) |

*** ** * ** ***

`https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator` wrapping a `https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationHolder`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationSegmentIterator#RepresentationSegmentIterator(androidx.media3.exoplayer.dash.DefaultDashChunkSource.RepresentationHolder,long,long,long,androidx.media3.exoplayer.dash.DashContentSteeringTracker)( https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationHolder representation, long firstAvailableSegmentNum, long lastAvailableSegmentNum, long nowPeriodTimeUs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/DashContentSteeringTracker contentSteeringTracker )` Creates iterator. |

| ### Public methods |
|---|---|
| `long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationSegmentIterator#getChunkEndTimeUs()()` Returns the media end time of the chunk, in microseconds. |
| `long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationSegmentIterator#getChunkStartTimeUs()()` Returns the media start time of the chunk, in microseconds. |
| `https://developer.android.com/reference/androidx/media3/datasource/DataSpec` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationSegmentIterator#getDataSpec()()` Returns the `https://developer.android.com/reference/androidx/media3/datasource/DataSpec` used to load the media chunk. |
| `int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationSegmentIterator#getLocationSteeringPriorityIndex()()` Returns the index in the steering priority list of the locations (e.g., DASH service location or HLS pathway) for the current media chunks, or `Integer.MAX_VALUE` if steering is inactive or unavailable. |

### Inherited Constants

From [androidx.media3.exoplayer.source.chunk.MediaChunkIterator](https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator) `static final https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator` `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator#EMPTY()`

An empty media chunk iterator without available data.

### Inherited fields

From [androidx.media3.exoplayer.source.chunk.BaseMediaChunkIterator](https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/BaseMediaChunkIterator) `long` `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/BaseMediaChunkIterator#currentIndex()`

### Inherited methods

From [androidx.media3.exoplayer.source.chunk.BaseMediaChunkIterator](https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/BaseMediaChunkIterator) `final void` `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/BaseMediaChunkIterator#checkInBounds()()`

Verifies that the iterator points to a valid element.
`final long` `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/BaseMediaChunkIterator#getCurrentIndex()()`

Returns the current index this iterator is pointing to.
`boolean` `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/BaseMediaChunkIterator#isEnded()()`

Returns whether the iteration has reached the end of the available data.
`boolean` `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/BaseMediaChunkIterator#next()()`

Moves the iterator to the next media chunk.
`void` `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/BaseMediaChunkIterator#reset()()`

Resets the iterator to the initial position.

## Public constructors

### RepresentationSegmentIterator

```
public RepresentationSegmentIterator(
    DefaultDashChunkSource.RepresentationHolder representation,
    long firstAvailableSegmentNum,
    long lastAvailableSegmentNum,
    long nowPeriodTimeUs,
    @Nullable DashContentSteeringTracker contentSteeringTracker
)
```

Creates iterator.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationHolder representation` | The `https://developer.android.com/reference/androidx/media3/exoplayer/dash/DefaultDashChunkSource.RepresentationHolder` to wrap. |
| `long firstAvailableSegmentNum` | The number of the first available segment. |
| `long lastAvailableSegmentNum` | The number of the last available segment. |
| `long nowPeriodTimeUs` | The current time in microseconds since the start of the period used for calculating if segments are available at full network speed. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/DashContentSteeringTracker contentSteeringTracker` | The `https://developer.android.com/reference/androidx/media3/exoplayer/dash/DashContentSteeringTracker`, or `null`. |

## Public methods

### getChunkEndTimeUs

```
public long getChunkEndTimeUs()
```

Returns the media end time of the chunk, in microseconds.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/util/NoSuchElementException.html` | If the method is called before the first call to `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator#next()` or when `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator#isEnded()` is true. |

### getChunkStartTimeUs

```
public long getChunkStartTimeUs()
```

Returns the media start time of the chunk, in microseconds.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/util/NoSuchElementException.html` | If the method is called before the first call to `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator#next()` or when `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator#isEnded()` is true. |

### getDataSpec

```
public DataSpec getDataSpec()
```

Returns the `https://developer.android.com/reference/androidx/media3/datasource/DataSpec` used to load the media chunk.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/util/NoSuchElementException.html` | If the method is called before the first call to `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator#next()` or when `https://developer.android.com/reference/androidx/media3/exoplayer/source/chunk/MediaChunkIterator#isEnded()` is true. |

### getLocationSteeringPriorityIndex

```
public int getLocationSteeringPriorityIndex()
```

Returns the index in the steering priority list of the locations (e.g., DASH service location or HLS pathway) for the current media chunks, or `Integer.MAX_VALUE` if steering is inactive or unavailable.

The returned index is only meaningful relatively among candidate tracks (i.e. a lower numerical value indicates a higher priority, with `0` being the top priority).