# MediaSourceFactory

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

*** ** * ** ***


```
@UnstableApi
interface MediaSourceFactory : MediaSource.Factory
```

<br />

Known direct subclasses [DashMediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/dash/DashMediaSource.Factory), [DefaultMediaSourceFactory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/DefaultMediaSourceFactory), [FakeMediaSourceFactory](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSourceFactory), [HlsMediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/hls/HlsMediaSource.Factory), [ProgressiveMediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/ProgressiveMediaSource.Factory), [RtspMediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/rtsp/RtspMediaSource.Factory), [SsMediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.Factory)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/dash/DashMediaSource.Factory` | Factory for `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/dash/DashMediaSource`s. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/DefaultMediaSourceFactory` | The default `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory` implementation. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSourceFactory` | Fake `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSourceFactory` that creates a `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeMediaSource`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/hls/HlsMediaSource.Factory` | Factory for `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/hls/HlsMediaSource`s. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/ProgressiveMediaSource.Factory` | Factory for `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/ProgressiveMediaSource`s. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/rtsp/RtspMediaSource.Factory` | Factory for `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/rtsp/RtspMediaSource` |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.Factory` | Factory for `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/smoothstreaming/SsMediaSource`. |

*** ** * ** ***

> [!CAUTION]
> **This interface is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory`.

## Summary

| ### Constants |
|---|---|
| `const https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSourceFactory!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSourceFactory#UNSUPPORTED()` **This property is deprecated.** Deprecated in Java |

### Inherited Constants

From [androidx.media3.exoplayer.source.MediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory) `const https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#UNSUPPORTED()`

**This property is deprecated.** Deprecated in Java

### Inherited functions

From [androidx.media3.exoplayer.source.MediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory) `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
[createMediaSource](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#createMediaSource(androidx.media3.common.MediaItem))(mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!)`

**This function is deprecated.** Deprecated in Java
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
@https://developer.android.com/reference/kotlin/androidx/media3/common/util/ExperimentalApi
[experimentalParseSubtitlesDuringExtraction](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#experimentalParseSubtitlesDuringExtraction(boolean))(
parseSubtitlesDuringExtraction: 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://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
@https://developer.android.com/reference/kotlin/androidx/media3/common/C.ContentType
[getSupportedTypes](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#getSupportedTypes())()`

**This function is deprecated.** Deprecated in Java
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
[setCmcdConfigurationFactory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#setCmcdConfigurationFactory(androidx.media3.exoplayer.upstream.CmcdConfiguration.Factory))(
cmcdConfigurationFactory: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/CmcdConfiguration.Factory!
)`

**This function is deprecated.** Deprecated in Java
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html
[setDownloadExecutor](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#setDownloadExecutor(com.google.common.base.Supplier<androidx.media3.exoplayer.util.ReleasableExecutor>))(downloadExecutor: https://guava.dev/releases/snapshot-android/api/docs/com/google/common/base/Supplier.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/util/ReleasableExecutor!>!)`

**This function is deprecated.** Deprecated in Java
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
[setDrmSessionManagerProvider](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#setDrmSessionManagerProvider(androidx.media3.exoplayer.drm.DrmSessionManagerProvider))(
drmSessionManagerProvider: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/drm/DrmSessionManagerProvider!
)`

**This function is deprecated.** Deprecated in Java
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
[setLoadErrorHandlingPolicy](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#setLoadErrorHandlingPolicy(androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy))(
loadErrorHandlingPolicy: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/upstream/LoadErrorHandlingPolicy!
)`

**This function is deprecated.** Deprecated in Java
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory!` `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi
[setSubtitleParserFactory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#setSubtitleParserFactory(androidx.media3.extractor.text.SubtitleParser.Factory))(subtitleParserFactory: https://developer.android.com/reference/kotlin/androidx/media3/extractor/text/SubtitleParser.Factory!)`

**This function is deprecated.** Deprecated in Java

## Constants

### UNSUPPORTED

```
@UnstableApi
const val UNSUPPORTED: MediaSourceFactory!
```

> [!CAUTION]
> **This property is deprecated.**   
> Deprecated in Java

An instance that throws `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` from `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#createMediaSource(androidx.media3.common.MediaItem)` and `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory#getSupportedTypes()`.