# DefaultDataSource.Factory

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

*** ** * ** ***


```
class DefaultDataSource.Factory : DataSource.Factory
```

<br />

*** ** * ** ***

`https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource.Factory` for `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource.Factory#Factory(android.content.Context)(context: https://developer.android.com/reference/android/content/Context.html!)` Creates an instance. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource.Factory#Factory(android.content.Context,androidx.media3.datasource.DataSource.Factory)(context: https://developer.android.com/reference/android/content/Context.html!, baseDataSourceFactory: https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource.Factory!)` Creates an instance. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource!` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource.Factory#createDataSource()()` Creates a `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource` instance. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource.Factory!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource.Factory#setTransferListener(androidx.media3.datasource.TransferListener)(transferListener: https://developer.android.com/reference/kotlin/androidx/media3/datasource/TransferListener?)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/TransferListener` that will be used. |

## Public constructors

### Factory

```
Factory(context: Context!)
```

Creates an instance.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html!` | A context. |

### Factory

```
Factory(context: Context!, baseDataSourceFactory: DataSource.Factory!)
```

Creates an instance.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html!` | A context. |
| `baseDataSourceFactory: https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource.Factory!` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource.Factory` to be used to create base `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource` for `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource` instances. The base `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource` is normally an `https://developer.android.com/reference/kotlin/androidx/media3/datasource/HttpDataSource`, and is responsible for fetching data over HTTP and HTTPS, as well as any other URI schemes not otherwise supported by `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource`. |

## Public functions

### createDataSource

```
@UnstableApi
fun createDataSource(): DefaultDataSource!
```

Creates a `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource` instance.

### setTransferListener

```
@CanIgnoreReturnValue
@UnstableApi
fun setTransferListener(transferListener: TransferListener?): DefaultDataSource.Factory!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/TransferListener` that will be used.

The default is `null`.

See `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource#addTransferListener(androidx.media3.datasource.TransferListener)`.

| Parameters |
|---|---|
| `transferListener: https://developer.android.com/reference/kotlin/androidx/media3/datasource/TransferListener?` | The listener that will be used. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultDataSource.Factory!` | This factory. |