# TestTransformerBuilder

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

*** ** * ** ***


```
@UnstableApi
class TestTransformerBuilder
```

<br />

*** ** * ** ***

A builder of `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer` instances for testing with Robolectric.

Transcoding video is unsupported in Robolectric tests. In order for a `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer` test instance to succeed with video input, make sure to configure the export in such a way that video samples are transmuxed (for example by not adding any video effects).

Images are unsupported in Robolectric tests.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#TestTransformerBuilder(android.content.Context)(context: https://developer.android.com/reference/android/content/Context.html!)` Creates a new instance. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#addListener(androidx.media3.transformer.Transformer.Listener)(listener: https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Listener!)` Adds a `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Listener`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer!` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#build()()` Builds a `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer` instance for testing with Robolectric. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/ExperimentalApi https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#experimentalSetMp4EditListTrimEnabled(boolean)(enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to use an MP4 edit list for trimming. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/ExperimentalApi https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#experimentalSetTrimOptimizationEnabled(boolean)( trimOptimizationEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Sets whether to enable the trim optimization. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#setAssetLoaderFactory(androidx.media3.transformer.AssetLoader.Factory)(assetLoaderFactory: https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.Factory!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.Factory` to use. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#setAudioMimeType(java.lang.String)(audioMimeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` Sets the audio `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes` of the output. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/annotation/VisibleForTesting https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#setClock(androidx.media3.common.util.Clock)(clock: https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock` that will be used by the transformer. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#setFallbackEnabled(boolean)(fallbackEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to enable `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultEncoderFactory.Builder#setEnableFallback(boolean)`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#setForceTransformerToFail(boolean)(forceTransformerToFail: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether Transformer should be forced to fail. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#setLooper(android.os.Looper)(looper: https://developer.android.com/reference/android/os/Looper.html!)` Sets the `https://developer.android.com/reference/android/os/Looper.html` that must be used for all calls to the transformer and that is used to call listeners on. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#setMaxDelayBetweenMuxerSamplesMs(long)(maxDelayBetweenMuxerSamplesMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Sets the maximum delay allowed between output samples. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder#setMuxerFactory(androidx.media3.muxer.Muxer.Factory)(muxerFactory: https://developer.android.com/reference/kotlin/androidx/media3/muxer/Muxer.Factory!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/muxer/Muxer.Factory` to use. |

## Public constructors

### TestTransformerBuilder

```
TestTransformerBuilder(context: Context!)
```

Creates a new instance.

## Public functions

### addListener

```
@CanIgnoreReturnValue
fun addListener(listener: Transformer.Listener!): TestTransformerBuilder!
```

Adds a `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Listener`.

| Parameters |
|---|---|
| `listener: https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Listener!` | A @link Transformer.Listener}. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Builder#addListener(androidx.media3.transformer.Transformer.Listener)` |   |

### build

```
fun build(): Transformer!
```

Builds a `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer` instance for testing with Robolectric.

### experimentalSetMp4EditListTrimEnabled

```
@CanIgnoreReturnValue
@ExperimentalApi
fun experimentalSetMp4EditListTrimEnabled(enabled: Boolean): TestTransformerBuilder!
```

Sets whether to use an MP4 edit list for trimming.

| Parameters |
|---|---|
| `enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to enable the trim optimization. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Builder#experimentalSetMp4EditListTrimEnabled(boolean)` |   |

### experimentalSetTrimOptimizationEnabled

```
@CanIgnoreReturnValue
@ExperimentalApi
fun experimentalSetTrimOptimizationEnabled(
    trimOptimizationEnabled: Boolean
): TestTransformerBuilder!
```

Sets whether to enable the trim optimization.

| Parameters |
|---|---|
| `trimOptimizationEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to enable the trim optimization. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Builder#experimentalSetTrimOptimizationEnabled(boolean)` |   |

### setAssetLoaderFactory

```
@CanIgnoreReturnValue
fun setAssetLoaderFactory(assetLoaderFactory: AssetLoader.Factory!): TestTransformerBuilder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.Factory` to use.

| Parameters |
|---|---|
| `assetLoaderFactory: https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.Factory!` | The `https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.Factory` to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Builder#setAssetLoaderFactory(androidx.media3.transformer.AssetLoader.Factory)` |   |

### setAudioMimeType

```
@CanIgnoreReturnValue
fun setAudioMimeType(audioMimeType: String!): TestTransformerBuilder!
```

Sets the audio `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes` of the output.

| Parameters |
|---|---|
| `audioMimeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | The audio MIME type of the output. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Builder#setAudioMimeType(java.lang.String)` |   |

### setClock

```
@CanIgnoreReturnValue
@VisibleForTesting
fun setClock(clock: Clock!): TestTransformerBuilder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock` that will be used by the transformer.

The default value is a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeClock` instance.

| Parameters |
|---|---|
| `clock: https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock` instance. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

### setFallbackEnabled

```
@CanIgnoreReturnValue
fun setFallbackEnabled(fallbackEnabled: Boolean): TestTransformerBuilder!
```

Sets whether to enable `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultEncoderFactory.Builder#setEnableFallback(boolean)`.

The default value is `false`.

| Parameters |
|---|---|
| `fallbackEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to enable fallback. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultEncoderFactory.Builder#setEnableFallback(boolean)` |   |

### setForceTransformerToFail

```
@CanIgnoreReturnValue
fun setForceTransformerToFail(forceTransformerToFail: Boolean): TestTransformerBuilder!
```

Sets whether Transformer should be forced to fail.

If set, transformer's `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Listener#onError(androidx.media3.transformer.Composition,androidx.media3.transformer.ExportResult,androidx.media3.transformer.ExportException)` callback will be called when transformer fails.

The default value is `false`.

| Parameters |
|---|---|
| `forceTransformerToFail: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether Transformer should be forced to fail. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

### setLooper

```
@CanIgnoreReturnValue
fun setLooper(looper: Looper!): TestTransformerBuilder!
```

Sets the `https://developer.android.com/reference/android/os/Looper.html` that must be used for all calls to the transformer and that is used to call listeners on.

| Parameters |
|---|---|
| `looper: https://developer.android.com/reference/android/os/Looper.html!` | The `https://developer.android.com/reference/android/os/Looper.html` to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Builder#setLooper(android.os.Looper)` |   |

### setMaxDelayBetweenMuxerSamplesMs

```
@CanIgnoreReturnValue
fun setMaxDelayBetweenMuxerSamplesMs(maxDelayBetweenMuxerSamplesMs: Long): TestTransformerBuilder!
```

Sets the maximum delay allowed between output samples.

| Parameters |
|---|---|
| `maxDelayBetweenMuxerSamplesMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The maximum delay allowed between output samples, in milliseconds. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Builder#setMaxDelayBetweenMuxerSamplesMs(long)` |   |

### setMuxerFactory

```
@CanIgnoreReturnValue
fun setMuxerFactory(muxerFactory: Muxer.Factory!): TestTransformerBuilder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/muxer/Muxer.Factory` to use.

| Parameters |
|---|---|
| `muxerFactory: https://developer.android.com/reference/kotlin/androidx/media3/muxer/Muxer.Factory!` | The `https://developer.android.com/reference/kotlin/androidx/media3/muxer/Muxer.Factory` to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/TestTransformerBuilder!` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Builder#setMuxerFactory(androidx.media3.muxer.Muxer.Factory)` |   |