# FrameworkMuxer.Factory

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

*** ** * ** ***


```
public final class FrameworkMuxer.Factory implements Muxer.Factory
```

<br />

*** ** * ** ***

`https://developer.android.com/reference/androidx/media3/muxer/Muxer.Factory` for `https://developer.android.com/reference/androidx/media3/transformer/FrameworkMuxer`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/transformer/FrameworkMuxer.Factory#Factory()()` |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/transformer/FrameworkMuxer` | `https://developer.android.com/reference/androidx/media3/transformer/FrameworkMuxer.Factory#create(java.lang.String)(https://developer.android.com/reference/java/lang/String.html path)` Returns a new `https://developer.android.com/reference/androidx/media3/muxer/Muxer`. |
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/transformer/FrameworkMuxer.Factory#getSupportedSampleMimeTypes(int)(@https://developer.android.com/reference/androidx/media3/common/C.TrackType int trackType)` Returns the supported sample `https://developer.android.com/reference/androidx/media3/common/MimeTypes` for the given `https://developer.android.com/reference/androidx/media3/common/C.TrackType`. |
| `https://developer.android.com/reference/androidx/media3/transformer/FrameworkMuxer.Factory` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/transformer/FrameworkMuxer.Factory#setVideoDurationUs(long)(long videoDurationUs)` Sets the duration of the video track (in microseconds) in the output. |

### Inherited methods

From [androidx.media3.muxer.Muxer.Factory](https://developer.android.com/reference/androidx/media3/muxer/Muxer.Factory) `https://developer.android.com/reference/androidx/media3/muxer/Muxer` `https://developer.android.com/reference/androidx/media3/muxer/Muxer.Factory#create(android.os.ParcelFileDescriptor)(https://developer.android.com/reference/android/os/ParcelFileDescriptor.html pfd)`

Returns a new `https://developer.android.com/reference/androidx/media3/muxer/Muxer`.
`boolean` `https://developer.android.com/reference/androidx/media3/muxer/Muxer.Factory#supportsWritingNegativeTimestampsInEditList()()`

Whether the muxer supports writing negative timestamps into an edit list to instruct players to ignore these samples.

## Public constructors

### Factory

```
public Factory()
```

## Public methods

### create

```
public FrameworkMuxer create(String path)
```

Returns a new `https://developer.android.com/reference/androidx/media3/muxer/Muxer`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html path` | The path to the output file. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/muxer/MuxerException` | If an error occurs opening the output file for writing. |

### getSupportedSampleMimeTypes

```
public ImmutableList<String> getSupportedSampleMimeTypes(@C.TrackType int trackType)
```

Returns the supported sample `https://developer.android.com/reference/androidx/media3/common/MimeTypes` for the given `https://developer.android.com/reference/androidx/media3/common/C.TrackType`.

### setVideoDurationUs

```
@CanIgnoreReturnValue
public FrameworkMuxer.Factory setVideoDurationUs(long videoDurationUs)
```

Sets the duration of the video track (in microseconds) in the output.

Only the duration of the last sample is adjusted to achieve the given duration. Duration of the other samples remains unchanged.

The default is `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` to not set any duration in the output. In this case the video track duration is determined by the samples written to it and the duration of the last sample would be the same as that of the sample before that.

| Parameters |
|---|---|
| `long videoDurationUs` | The duration of the video track (in microseconds) in the output, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` to not set any duration. Only applicable when a video track is `https://developer.android.com/reference/androidx/media3/transformer/FrameworkMuxer#addTrack(androidx.media3.common.Format)`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/transformer/FrameworkMuxer.Factory` | This factory. |