# FakeMediaChunk

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

*** ** * ** ***


```
@UnstableApi
class FakeMediaChunk : MediaChunk
```

<br />

|---|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) ||||
| ↳ | [androidx.media3.exoplayer.source.chunk.Chunk](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk) |||
|   | ↳ | [androidx.media3.exoplayer.source.chunk.MediaChunk](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/MediaChunk) ||
|   |   | ↳ | [androidx.media3.test.utils.FakeMediaChunk](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaChunk) |

*** ** * ** ***

Fake `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/MediaChunk`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaChunk#FakeMediaChunk(androidx.media3.common.Format,long,long)(trackFormat: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!, startTimeUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, endTimeUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Creates a fake media chunk. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaChunk#FakeMediaChunk(androidx.media3.common.Format,long,long,int)( trackFormat: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!, startTimeUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, endTimeUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, @https://developer.android.com/reference/kotlin/androidx/media3/common/C.SelectionReason selectionReason: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` Creates a fake media chunk. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaChunk#cancelLoad()()` Cancels the load. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaChunk#isLoadCompleted()()` Returns whether the chunk has been fully loaded. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaChunk#load()()` Performs the load, returning on completion or cancellation. |

| ### Inherited functions |
|---|
| From [androidx.media3.exoplayer.source.chunk.Chunk](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk) |---|---| | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#bytesLoaded()()` Returns the number of bytes that have been loaded. | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#getDurationUs()()` Returns the duration of the chunk in microseconds. | | `(https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, (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/-string/index.html!>!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#getResponseHeaders()()` Returns the response headers associated with the last `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource#open(androidx.media3.datasource.DataSpec)` call. | | `https://developer.android.com/reference/android/net/Uri.html!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#getUri()()` Returns the `https://developer.android.com/reference/android/net/Uri.html` associated with the last `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource#open(androidx.media3.datasource.DataSpec)` call. | |
| From [androidx.media3.exoplayer.source.chunk.MediaChunk](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/MediaChunk) |---|---| | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/MediaChunk#getNextChunkIndex()()` Returns the next chunk index or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()` if it is not known. | |

| ### Inherited properties |
|---|
| From [androidx.media3.exoplayer.source.chunk.Chunk](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk) |---|---| | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/StatsDataSource!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#dataSource()` | | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#dataSpec()` The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec` that defines the data to be loaded. | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#endTimeUs()` The end time of the media contained by the chunk, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#TIME_UNSET()` if the data being loaded does not contain media samples. | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#loadTaskId()` Identifies the load task for this loadable. | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#startTimeUs()` The start time of the media contained by the chunk, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#TIME_UNSET()` if the data being loaded does not contain media samples. | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#steeredPathwayId()` The ID of the steered pathway from which data is being loaded, or `null` if not applicable. | | `https://developer.android.com/reference/kotlin/androidx/media3/common/Format!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#trackFormat()` The format of the track to which this chunk belongs. | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#trackSelectionData()` Optional data associated with the selection of the track to which this chunk belongs. | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/C.SelectionReason https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#trackSelectionReason()` One of the `https://developer.android.com/reference/kotlin/androidx/media3/common/C.SelectionReason` if the chunk belongs to a track. | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/C.DataType https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/Chunk#type()` The `https://developer.android.com/reference/kotlin/androidx/media3/common/C.DataType` of the chunk. | |
| From [androidx.media3.exoplayer.source.chunk.MediaChunk](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/MediaChunk) |---|---| | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/chunk/MediaChunk#chunkIndex()` The chunk index, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#INDEX_UNSET()` if it is not known. | |

## Public constructors

### FakeMediaChunk

```
FakeMediaChunk(trackFormat: Format!, startTimeUs: Long, endTimeUs: Long)
```

Creates a fake media chunk.

| Parameters |
|---|---|
| `trackFormat: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/Format`. |
| `startTimeUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The start time of the media, in microseconds. |
| `endTimeUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The end time of the media, in microseconds. |

### FakeMediaChunk

```
FakeMediaChunk(
    trackFormat: Format!,
    startTimeUs: Long,
    endTimeUs: Long,
    @C.SelectionReason selectionReason: Int
)
```

Creates a fake media chunk.

| Parameters |
|---|---|
| `trackFormat: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/Format`. |
| `startTimeUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The start time of the media, in microseconds. |
| `endTimeUs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The end time of the media, in microseconds. |
| `@https://developer.android.com/reference/kotlin/androidx/media3/common/C.SelectionReason selectionReason: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | One of the `https://developer.android.com/reference/kotlin/androidx/media3/common/C.SelectionReason`. |

## Public functions

### cancelLoad

```
fun cancelLoad(): Unit
```

Cancels the load.

Loadable implementations should ensure that a currently executing `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/Loader.Loadable#load()` call will exit reasonably quickly after this method is called. The `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/Loader.Loadable#load()` call may exit either by returning or by throwing an `https://developer.android.com/reference/java/io/IOException.html`.

If there is a currently executing `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/Loader.Loadable#load()` call, then the thread on which that call is being made will be interrupted immediately after the call to this method. Hence implementations do not need to (and should not attempt to) interrupt the loading thread themselves.

Although the loading thread will be interrupted, Loadable implementations should not use the interrupted status of the loading thread in `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/Loader.Loadable#load()` to determine whether the load has been canceled. This approach is not robust \[Internal ref: b/79223737\]. Instead, implementations should use their own flag to signal cancelation (for example, using `https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean.html`).

### isLoadCompleted

```
fun isLoadCompleted(): Boolean
```

Returns whether the chunk has been fully loaded.

### load

```
fun load(): Unit
```

Performs the load, returning on completion or cancellation.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/IOException.html` | If the input could not be loaded. |