# FakeMediaPeriod.TrackDataFactory

# FakeMediaPeriod.TrackDataFactory

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/FakeMediaPeriod.java+class:androidx.media3.test.utils.FakeMediaPeriod.TrackDataFactory)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory "View this page in Java")

<br />

```
interface FakeMediaPeriod.TrackDataFactory
```

<br />

*** ** * ** ***

A factory to create the test data for a particular track.

## Summary

|                                                                                                                                                                        ### Public functions                                                                                                                                                                         |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `(`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[FakeSampleStream.FakeSampleStreamItem](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeSampleStream.FakeSampleStreamItem)`!>!` | [create](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory#create(androidx.media3.common.Format,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId))`(format: `[Format](https://developer.android.com/reference/kotlin/androidx/media3/common/Format)`!, mediaPeriodId: `[MediaSource.MediaPeriodId](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId)`!)` Returns the list of[FakeSampleStream.FakeSampleStreamItem](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeSampleStream.FakeSampleStreamItem)s that will be written the sample queue during playback.                                                              |
| `java-static `[FakeMediaPeriod.TrackDataFactory](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory)`!`                                                                                                                                                                                                     | [samplesWithRateDurationAndKeyframeInterval](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory#samplesWithRateDurationAndKeyframeInterval(long,float,long,int))`(` ` initialSampleTimeUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`,` ` sampleRate: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)`,` ` durationUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`,` ` keyFrameInterval: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) `)` Creates a`TrackDataFactory`which generates samples at the given rate to cover the provided duration, with a specified key frame interval. |
| `java-static `[FakeMediaPeriod.TrackDataFactory](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory)`!`                                                                                                                                                                                                     | [singleSampleWithTimeUs](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory#singleSampleWithTimeUs(long))`(sampleTimeUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` Returns a factory that always provides a single keyframe sample with` time=sampleTimeUs`and then end-of-stream.                                                                                                                                                                                                                                                                                                                                                                                                    |

## Public functions

### create

```
fun create(format: Format!, mediaPeriodId: MediaSource.MediaPeriodId!): (Mutable)List<FakeSampleStream.FakeSampleStreamItem!>!
```

Returns the list of[FakeSampleStream.FakeSampleStreamItem](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeSampleStream.FakeSampleStreamItem)s that will be written the sample queue during playback.  

|                                                                         Parameters                                                                         |
|------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| `format: `[Format](https://developer.android.com/reference/kotlin/androidx/media3/common/Format)`!`                                                        | The format of the track to provide data for.                                                                                                      |
| `mediaPeriodId: `[MediaSource.MediaPeriodId](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId)`!` | The[MediaPeriodId](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId)to provide data for. |

|                                                                                                                                                                               Returns                                                                                                                                                                               |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `(`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[FakeSampleStream.FakeSampleStreamItem](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeSampleStream.FakeSampleStreamItem)`!>!` | The track data in the form of[FakeSampleStream.FakeSampleStreamItem](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeSampleStream.FakeSampleStreamItem)s. |

### samplesWithRateDurationAndKeyframeInterval

```
java-static fun samplesWithRateDurationAndKeyframeInterval(
    initialSampleTimeUs: Long,
    sampleRate: Float,
    durationUs: Long,
    keyFrameInterval: Int
): FakeMediaPeriod.TrackDataFactory!
```

Creates a`TrackDataFactory`which generates samples at the given rate to cover the provided duration, with a specified key frame interval.  

|                                              Parameters                                              |
|------------------------------------------------------------------------------------------------------|----------------------------------------------------------|
| `initialSampleTimeUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | The time of the initial sample, in microseconds.         |
| `sampleRate: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)        | The number of samples per second.                        |
| `durationUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)          | The duration of samples to generate, in microseconds.    |
| `keyFrameInterval: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)      | The number of samples between each keyframe (inclusive). |

|                                                                      Returns                                                                      |
|---------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|
| [FakeMediaPeriod.TrackDataFactory](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaPeriod.TrackDataFactory)`!` | The`TrackDataFactory`. |

### singleSampleWithTimeUs

```
java-static fun singleSampleWithTimeUs(sampleTimeUs: Long): FakeMediaPeriod.TrackDataFactory!
```

Returns a factory that always provides a single keyframe sample with`
time=sampleTimeUs`and then end-of-stream.