# FrameworkCryptoConfig

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/drm/FrameworkCryptoConfig.java+class:androidx.media3.exoplayer.drm.FrameworkCryptoConfig)

*** ** * ** ***


```
@UnstableApi
public final class FrameworkCryptoConfig implements CryptoConfig
```

<br />

*** ** * ** ***

A `https://developer.android.com/reference/androidx/media3/decoder/CryptoConfig` for `https://developer.android.com/reference/androidx/media3/common/C#CRYPTO_TYPE_FRAMEWORK()`. Contains the necessary information to build or update a framework `https://developer.android.com/reference/android/media/MediaCrypto.html` that can be used to configure a `https://developer.android.com/reference/android/media/MediaCodec.html`.

## Summary

| ### Constants |
|---|---|
| `static final boolean` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/FrameworkCryptoConfig#WORKAROUND_DEVICE_NEEDS_KEYS_TO_CONFIGURE_CODEC()` Whether the device needs keys to have been loaded into the `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSession` before codec configuration. |

| ### Public fields |
|---|---|
| `final boolean` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/FrameworkCryptoConfig#forceAllowInsecureDecoderComponents()` **This field is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#requiresSecureDecoder(byte[],java.lang.String)` instead, which incorporates this logic. <br /> |
| `final byte[]` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/FrameworkCryptoConfig#sessionId()` The DRM session id. |
| `final https://developer.android.com/reference/java/util/UUID.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/FrameworkCryptoConfig#uuid()` The DRM scheme UUID. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/FrameworkCryptoConfig#FrameworkCryptoConfig(java.util.UUID,byte[])(https://developer.android.com/reference/java/util/UUID.html uuid, byte[] sessionId)` Constructs an instance. |
| `[FrameworkCryptoConfig](https://developer.android.com/reference/androidx/media3/exoplayer/drm/FrameworkCryptoConfig#FrameworkCryptoConfig(java.util.UUID,byte[],boolean))( https://developer.android.com/reference/java/util/UUID.html uuid, byte[] sessionId, boolean forceAllowInsecureDecoderComponents )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/drm/FrameworkCryptoConfig#FrameworkCryptoConfig(java.util.UUID,byte[])` instead, and `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#requiresSecureDecoder(byte[],java.lang.String)` for the secure decoder handling logic. <br /> |

## Constants

### WORKAROUND_DEVICE_NEEDS_KEYS_TO_CONFIGURE_CODEC

```
public static final boolean WORKAROUND_DEVICE_NEEDS_KEYS_TO_CONFIGURE_CODEC
```

Whether the device needs keys to have been loaded into the `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSession` before codec configuration.

## Public fields

### forceAllowInsecureDecoderComponents

```
public final boolean forceAllowInsecureDecoderComponents
```

> [!CAUTION]
> **This field is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#requiresSecureDecoder(byte[],java.lang.String)` instead, which incorporates this logic.

### sessionId

```
public final byte[] sessionId
```

The DRM session id.

### uuid

```
public final UUID uuid
```

The DRM scheme UUID.

## Public constructors

### FrameworkCryptoConfig

```
public FrameworkCryptoConfig(UUID uuid, byte[] sessionId)
```

Constructs an instance.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/UUID.html uuid` | The DRM scheme UUID. |
| `byte[] sessionId` | The DRM session id. |

### FrameworkCryptoConfig

```
public [FrameworkCryptoConfig](https://developer.android.com/reference/androidx/media3/exoplayer/drm/FrameworkCryptoConfig#FrameworkCryptoConfig(java.util.UUID,byte[],boolean))(
    UUID uuid,
    byte[] sessionId,
    boolean forceAllowInsecureDecoderComponents
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/drm/FrameworkCryptoConfig#FrameworkCryptoConfig(java.util.UUID,byte[])` instead, and `https://developer.android.com/reference/androidx/media3/exoplayer/drm/ExoMediaDrm#requiresSecureDecoder(byte[],java.lang.String)` for the secure decoder handling logic.