# DefaultExtractorsFactory

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

*** ** * ** ***


```
@UnstableApi
class DefaultExtractorsFactory : ExtractorsFactory
```

<br />

*** ** * ** ***

An `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory` that provides an array of extractors for the following formats:

- MP4, including M4A (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/Mp4Extractor`)
- fMP4 (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/FragmentedMp4Extractor`)
- Matroska and WebM (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/mkv/MatroskaExtractor`)
- Ogg Vorbis/FLAC (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/ogg/OggExtractor`
- MP3 (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp3/Mp3Extractor`)
- AAC (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/AdtsExtractor`)
- MPEG TS (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor`)
- MPEG PS (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/PsExtractor`)
- FLV (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/flv/FlvExtractor`)
- WAV (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor`)
- AC3 (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/Ac3Extractor`)
- AC4 (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/Ac4Extractor`)
- AMR (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/amr/AmrExtractor`)
- FLAC
  - If available, the FLAC extension's `androidx.media3.decoder.flac.FlacExtractor` is used.
  - Otherwise, the core `https://developer.android.com/reference/kotlin/androidx/media3/extractor/flac/FlacExtractor` is used. Note that Android devices do not generally include a FLAC decoder before API 27. This can be worked around by using the FLAC extension or the FFmpeg extension.
- JPEG (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/jpeg/JpegExtractor`)
- PNG (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/png/PngExtractor`)
- WEBP (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/webp/WebpExtractor`)
- BMP (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/bmp/BmpExtractor`)
- HEIF (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/heif/HeifExtractor`)
- AVIF (`https://developer.android.com/reference/kotlin/androidx/media3/extractor/avif/AvifExtractor`)
- MIDI, if available, the MIDI extension's `androidx.media3.decoder.midi.MidiExtractor` is used.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#DefaultExtractorsFactory()()` |

| ### Public functions |
|---|---|
| `synchronized https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#createExtractors()()` Returns an array of new `https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor` instances. |
| `synchronized https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#createExtractors(android.net.Uri,java.util.Map<java.lang.String,java.util.List<java.lang.String>>)( uri: https://developer.android.com/reference/android/net/Uri.html!, responseHeaders: (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!>!>! )` Returns an array of new `https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor` instances. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `[experimentalSetTextTrackTranscodingEnabled](https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#experimentalSetTextTrackTranscodingEnabled(boolean))( textTrackTranscodingEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` **This function is deprecated.** This method (and all support for 'legacy' subtitle decoding during rendering) will be removed in a future release. <br /> |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setAdtsExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/AdtsExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/AdtsExtractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setAmrExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/amr/AmrExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/amr/AmrExtractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setConstantBitrateSeekingAlwaysEnabled(boolean)( constantBitrateSeekingAlwaysEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Convenience method to set whether approximate seeking using constant bitrate assumptions should be enabled for all extractors that support it, and if it should be enabled even if the content length (and hence the duration of the media) is unknown. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setConstantBitrateSeekingEnabled(boolean)( constantBitrateSeekingEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Convenience method to set whether approximate seeking using constant bitrate assumptions should be enabled for all extractors that support it. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setDisableArtworkMetadata(boolean)(disableArtworkMetadata: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Convenience method to set whether parsing of artwork metadata should be disabled for all extractors that support it. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setFlacExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/flac/FlacExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/flac/FlacExtractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setFragmentedMp4ExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/FragmentedMp4Extractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/FragmentedMp4Extractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setHeifExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/heif/HeifExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/heif/HeifExtractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setJpegExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/jpeg/JpegExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/jpeg/JpegExtractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setMatroskaExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/mkv/MatroskaExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mkv/MatroskaExtractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setMp3ExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp3/Mp3Extractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp3/Mp3Extractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setMp4ExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/Mp4Extractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/Mp4Extractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setParseHagcMetadata(boolean)(parseHagcMetadata: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to parse HAGC (ST 2094-50) metadata. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setSubtitleParserFactory(androidx.media3.extractor.text.SubtitleParser.Factory)(subtitleParserFactory: https://developer.android.com/reference/kotlin/androidx/media3/extractor/text/SubtitleParser.Factory!)` Sets a `https://developer.android.com/reference/kotlin/androidx/media3/extractor/text/SubtitleParser.Factory` to use when transcoding text tracks. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html [setTextTrackTranscodingEnabled](https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setTextTrackTranscodingEnabled(boolean))(textTrackTranscodingEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` **This function is deprecated.** This method (and all support for 'legacy' subtitle decoding during rendering) will be removed in a future release. <br /> |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setTsExtractorFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory`s used by `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setTsExtractorMode(int)(@https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor.Mode mode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the mode for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setTsExtractorTimestampSearchBytes(int)(timestampSearchBytes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the number of bytes searched to find a timestamp for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor` instances created by the factory. |
| `synchronized https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setTsSubtitleFormats(java.util.List<androidx.media3.common.Format>)(subtitleFormats: (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://developer.android.com/reference/kotlin/androidx/media3/common/Format!>!)` Sets a list of subtitle formats to pass to the `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory` used by `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor` instances created by the factory. |

### Inherited Constants

From [androidx.media3.extractor.ExtractorsFactory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory) `const https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory!` `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory#EMPTY()`

Extractor factory that returns an empty list of extractors.

## Public constructors

### DefaultExtractorsFactory

```
DefaultExtractorsFactory()
```

## Public functions

### createExtractors

```
synchronized fun createExtractors(): Array<Extractor!>!
```

Returns an array of new `https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor` instances.

### createExtractors

```
synchronized fun createExtractors(
    uri: Uri!,
    responseHeaders: (Mutable)Map<String!, (Mutable)List<String!>!>!
): Array<Extractor!>!
```

Returns an array of new `https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor` instances.

| Parameters |
|---|---|
| `uri: https://developer.android.com/reference/android/net/Uri.html!` | The `https://developer.android.com/reference/android/net/Uri.html` of the media to extract. |
| `responseHeaders: (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!>!>!` | The response headers of the media to extract, or an empty map if there are none. The map lookup should be case-insensitive. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor!>!` | The `https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor` instances. |

### experimentalSetTextTrackTranscodingEnabled

```
synchronized fun [experimentalSetTextTrackTranscodingEnabled](https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#experimentalSetTextTrackTranscodingEnabled(boolean))(
    textTrackTranscodingEnabled: Boolean
): DefaultExtractorsFactory!
```

> [!CAUTION]
> **This function is deprecated.**   
>
> This method (and all support for 'legacy' subtitle decoding during rendering) will be removed in a future release.

Enables transcoding of text track samples to `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes#APPLICATION_MEDIA3_CUES()` before the data is emitted to `https://developer.android.com/reference/kotlin/androidx/media3/extractor/TrackOutput`.

Transcoding is enabled by default.

This method is experimental and will be renamed or removed in a future release.

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

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

### setAdtsExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setAdtsExtractorFlags(@AdtsExtractor.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/AdtsExtractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/AdtsExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/AdtsExtractor#AdtsExtractor(int)` |   |

### setAmrExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setAmrExtractorFlags(@AmrExtractor.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/amr/AmrExtractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/amr/AmrExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/amr/AmrExtractor#AmrExtractor(int)` |   |

### setConstantBitrateSeekingAlwaysEnabled

```
@CanIgnoreReturnValue
synchronized fun setConstantBitrateSeekingAlwaysEnabled(
    constantBitrateSeekingAlwaysEnabled: Boolean
): DefaultExtractorsFactory!
```

Convenience method to set whether approximate seeking using constant bitrate assumptions should be enabled for all extractors that support it, and if it should be enabled even if the content length (and hence the duration of the media) is unknown. If set to true, the flags required to enable this functionality will be OR'd with those passed to the setters when creating extractor instances. If set to false then the flags passed to the setters will be used without modification.

When seeking into content where the length is unknown, application code should ensure that requested seek positions are valid, or should be ready to handle playback failures reported through `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.Listener#onPlayerError(androidx.media3.common.PlaybackException)` with `https://developer.android.com/reference/kotlin/androidx/media3/common/PlaybackException#errorCode()` set to `https://developer.android.com/reference/kotlin/androidx/media3/common/PlaybackException#ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE()`.

| Parameters |
|---|---|
| `constantBitrateSeekingAlwaysEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether approximate seeking using a constant bitrate assumption should be enabled for all extractors that support it, including when the content duration is unknown. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

### setConstantBitrateSeekingEnabled

```
@CanIgnoreReturnValue
synchronized fun setConstantBitrateSeekingEnabled(
    constantBitrateSeekingEnabled: Boolean
): DefaultExtractorsFactory!
```

Convenience method to set whether approximate seeking using constant bitrate assumptions should be enabled for all extractors that support it. If set to true, the flags required to enable this functionality will be OR'd with those passed to the setters when creating extractor instances. If set to false then the flags passed to the setters will be used without modification.

| Parameters |
|---|---|
| `constantBitrateSeekingEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether approximate seeking using a constant bitrate assumption should be enabled for all extractors that support it. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

### setDisableArtworkMetadata

```
@CanIgnoreReturnValue
synchronized fun setDisableArtworkMetadata(disableArtworkMetadata: Boolean): DefaultExtractorsFactory!
```

Convenience method to set whether parsing of artwork metadata should be disabled for all extractors that support it. If set to true, the flags required to disable this functionality will be OR'd with those passed to the setters when creating extractor instances. If set to false then the flags passed to the setters will be used without modification.

| Parameters |
|---|---|
| `disableArtworkMetadata: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether parsing of artwork metadata should be disabled. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

### setFlacExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setFlacExtractorFlags(@FlacExtractor.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/flac/FlacExtractor` instances created by the factory. The flags are also used by `androidx.media3.decoder.flac.FlacExtractor` instances if the FLAC extension is being used.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/flac/FlacExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/flac/FlacExtractor#FlacExtractor(int)` |   |

### setFragmentedMp4ExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setFragmentedMp4ExtractorFlags(@FragmentedMp4Extractor.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/FragmentedMp4Extractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/FragmentedMp4Extractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/FragmentedMp4Extractor#FragmentedMp4Extractor(androidx.media3.extractor.text.SubtitleParser.Factory,int)` |   |

### setHeifExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setHeifExtractorFlags(@HeifExtractor.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/heif/HeifExtractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/heif/HeifExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/heif/HeifExtractor#HeifExtractor(int)` |   |

### setJpegExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setJpegExtractorFlags(@JpegExtractor.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/jpeg/JpegExtractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/jpeg/JpegExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/jpeg/JpegExtractor#JpegExtractor(int)` |   |

### setMatroskaExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setMatroskaExtractorFlags(@MatroskaExtractor.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mkv/MatroskaExtractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/mkv/MatroskaExtractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mkv/MatroskaExtractor#MatroskaExtractor(androidx.media3.extractor.text.SubtitleParser.Factory,int)` |   |

### setMp3ExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setMp3ExtractorFlags(@Mp3Extractor.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp3/Mp3Extractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp3/Mp3Extractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp3/Mp3Extractor#Mp3Extractor(int)` |   |

### setMp4ExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setMp4ExtractorFlags(@Mp4Extractor.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/Mp4Extractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/Mp4Extractor.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/mp4/Mp4Extractor#Mp4Extractor(androidx.media3.extractor.text.SubtitleParser.Factory,int)` |   |

### setParseHagcMetadata

```
@CanIgnoreReturnValue
synchronized fun setParseHagcMetadata(parseHagcMetadata: Boolean): DefaultExtractorsFactory!
```

Sets whether to parse HAGC (ST 2094-50) metadata.

| Parameters |
|---|---|
| `parseHagcMetadata: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether HAGC metadata parsing is enabled. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | This factory, for convenience. |

### setSubtitleParserFactory

```
@CanIgnoreReturnValue
synchronized fun setSubtitleParserFactory(subtitleParserFactory: SubtitleParser.Factory!): DefaultExtractorsFactory!
```

Sets a `https://developer.android.com/reference/kotlin/androidx/media3/extractor/text/SubtitleParser.Factory` to use when transcoding text tracks.

This is only works if `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory#experimentalSetTextTrackTranscodingEnabled(boolean)` is enabled.

| Parameters |
|---|---|
| `subtitleParserFactory: https://developer.android.com/reference/kotlin/androidx/media3/extractor/text/SubtitleParser.Factory!` | The factory for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/text/SubtitleParser` instances. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

### setTextTrackTranscodingEnabled

```
@CanIgnoreReturnValue
synchronized fun [setTextTrackTranscodingEnabled](https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory#setTextTrackTranscodingEnabled(boolean))(textTrackTranscodingEnabled: Boolean): DefaultExtractorsFactory!
```

> [!CAUTION]
> **This function is deprecated.**   
>
> This method (and all support for 'legacy' subtitle decoding during rendering) will be removed in a future release.

### setTsExtractorFlags

```
@CanIgnoreReturnValue
synchronized fun setTsExtractorFlags(@DefaultTsPayloadReaderFactory.Flags flags: Int): DefaultExtractorsFactory!
```

Sets flags for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory`s used by `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The flags to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor#TsExtractor(int)` |   |

### setTsExtractorMode

```
@CanIgnoreReturnValue
synchronized fun setTsExtractorMode(@TsExtractor.Mode mode: Int): DefaultExtractorsFactory!
```

Sets the mode for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor` instances created by the factory.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor.Mode mode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The mode to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor#TsExtractor(int,androidx.media3.common.util.TimestampAdjuster,androidx.media3.extractor.ts.TsPayloadReader.Factory,int)` |   |

### setTsExtractorTimestampSearchBytes

```
@CanIgnoreReturnValue
synchronized fun setTsExtractorTimestampSearchBytes(timestampSearchBytes: Int): DefaultExtractorsFactory!
```

Sets the number of bytes searched to find a timestamp for `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor` instances created by the factory.

| Parameters |
|---|---|
| `timestampSearchBytes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of search bytes to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor#TsExtractor(int,androidx.media3.common.util.TimestampAdjuster,androidx.media3.extractor.ts.TsPayloadReader.Factory,int)` |   |

### setTsSubtitleFormats

```
@CanIgnoreReturnValue
synchronized fun setTsSubtitleFormats(subtitleFormats: (Mutable)List<Format!>!): DefaultExtractorsFactory!
```

Sets a list of subtitle formats to pass to the `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory` used by `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsExtractor` instances created by the factory.

| Parameters |
|---|---|
| `subtitleFormats: (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://developer.android.com/reference/kotlin/androidx/media3/common/Format!>!` | The subtitle formats. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory!` | The factory, for convenience. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#DefaultTsPayloadReaderFactory(int,java.util.List<androidx.media3.common.Format>)` |   |