# ExtractorsFactory

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/ExtractorsFactory.java+class:androidx.media3.extractor.ExtractorsFactory)

*** ** * ** ***


```
@UnstableApi
interface ExtractorsFactory
```

<br />

Known direct subclasses [DefaultExtractorsFactory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory), [ForwardingExtractorsFactory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ForwardingExtractorsFactory)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/DefaultExtractorsFactory` | An `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory` that provides an array of extractors for the following formats: |
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ForwardingExtractorsFactory` | A forwarding `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory` that forwards all methods to the underlying implementation. |

*** ** * ** ***

Factory for arrays of `https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor` instances.

## Summary

| ### Constants |
|---|---|
| `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 functions |
|---|---|
| `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/ExtractorsFactory#createExtractors()()` Returns an array of new `https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor` instances. |
| `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/ExtractorsFactory#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. |
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/ExperimentalApi [experimentalSetTextTrackTranscodingEnabled](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory#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 /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory#setParseHagcMetadata(boolean)(parseHagcMetadata: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to parse HAGC (ST 2094-50) metadata. |
| `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory!` | `https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory#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. |

## Constants

### EMPTY

```
const val EMPTY: ExtractorsFactory!
```

Extractor factory that returns an empty list of extractors. Can be used whenever `https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor` are not required.

## Public functions

### createExtractors

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

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

### createExtractors

```
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

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

> [!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/ExtractorsFactory!` | The factory, for convenience. |

### setParseHagcMetadata

```
@CanIgnoreReturnValue
fun setParseHagcMetadata(parseHagcMetadata: Boolean): ExtractorsFactory!
```

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/ExtractorsFactory!` | This factory, for convenience. |

### setSubtitleParserFactory

```
fun setSubtitleParserFactory(subtitleParserFactory: SubtitleParser.Factory!): ExtractorsFactory!
```

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/ExtractorsFactory!` | The factory, for convenience. |