# MediaCodecAdapter.Factory

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/mediacodec/MediaCodecAdapter.java+class:androidx.media3.exoplayer.mediacodec.MediaCodecAdapter.Factory)

*** ** * ** ***


```
public interface MediaCodecAdapter.Factory
```

<br />

Known direct subclasses [DefaultMediaCodecAdapterFactory](https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/DefaultMediaCodecAdapterFactory), [IdlingMediaCodecAdapterFactory](https://developer.android.com/reference/androidx/media3/test/utils/robolectric/IdlingMediaCodecAdapterFactory), [SynchronousMediaCodecAdapter.Factory](https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/SynchronousMediaCodecAdapter.Factory)

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/DefaultMediaCodecAdapterFactory` | The default `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/robolectric/IdlingMediaCodecAdapterFactory` | A `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory` which can `https://robolectric.org/javadoc/4.11/org/robolectric/shadows/ShadowLooper.html#idle--` all the async queueing and callback threads used in async MediaCodec mode. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/SynchronousMediaCodecAdapter.Factory` | A factory for `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/SynchronousMediaCodecAdapter` instances. |

*** ** * ** ***

A factory for `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter` instances.

## Summary

| ### Constants |
|---|---|
| `default static final https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory#DEFAULT()` **This field is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory#getDefault(android.content.Context)` instead. <br /> |

| ### Public methods |
|---|---|
| `abstract https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory#createAdapter(androidx.media3.exoplayer.mediacodec.MediaCodecAdapter.Configuration)(https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration configuration)` Creates a `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter` instance. |
| `default static https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory#getDefault(android.content.Context)(https://developer.android.com/reference/android/content/Context.html context)` Returns the default factory that should be used in most cases. |

## Constants

### DEFAULT

```
default static final MediaCodecAdapter.Factory DEFAULT
```

> [!CAUTION]
> **This field is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory#getDefault(android.content.Context)` instead.

## Public methods

### createAdapter

```
abstract MediaCodecAdapter createAdapter(MediaCodecAdapter.Configuration configuration)
```

Creates a `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter` instance.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### getDefault

```
default static MediaCodecAdapter.Factory getDefault(Context context)
```

Returns the default factory that should be used in most cases.

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

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Factory` | The default factory. |