com.brightcove.player.drm

## Class ExoPlayerDrmSessionManager<T extends com.google.android.exoplayer2.drm.ExoMediaCrypto>

- java.lang.Object
- - com.brightcove.player.drm.ExoPlayerDrmSessionManager<T>

- All Implemented Interfaces:
    BrightcoveDrmSession, DrmSession<T>

      public class ExoPlayerDrmSessionManager<T extends com.google.android.exoplayer2.drm.ExoMediaCrypto>
      extends java.lang.Object
      implements DrmSession<T>

  A `DrmSessionManager` that supports offline playback of DRM restricted content using `MediaDrm`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ExoPlayerDrmSessionManager.Builder`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExoPlayerDrmSessionManager(java.util.UUID uuid, com.google.android.exoplayer2.drm.ExoMediaDrm.Provider mediaDrm, com.google.android.exoplayer2.drm.MediaDrmCallback callback, java.util.HashMap<java.lang.String,java.lang.String> optionalKeyRequestParameters)` Deprecated.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `DrmException` | `getDrmError()` Deprecated.
    `com.google.android.exoplayer2.drm.DefaultDrmSessionManager` | `getDrmSessionManager()`
    `byte[]` | `getOfflineLicenseKeySetId()` Deprecated.
    `byte[]` | `getPropertyByteArray(java.lang.String propertyName)`
    `java.lang.String` | `getPropertyString(java.lang.String propertyName)`
    `java.util.Map<java.lang.String,java.lang.String>` | `getSourceProperties()`
    `java.util.Map<java.lang.String,java.lang.String>` | `queryKeyStatus()` Deprecated.
    `void` | `setMode(int mode, byte[] playbackLicense)`
    `void` | `setPropertyByteArray(java.lang.String propertyName, byte[] value)`
    `void` | `setPropertyString(java.lang.String propertyName, java.lang.String value)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ExoPlayerDrmSessionManager

          @Deprecated
          public ExoPlayerDrmSessionManager(java.util.UUID uuid,
                                                        com.google.android.exoplayer2.drm.ExoMediaDrm.Provider mediaDrm,
                                                        com.google.android.exoplayer2.drm.MediaDrmCallback callback,
                                                        java.util.HashMap<java.lang.String,java.lang.String> optionalKeyRequestParameters)

      Deprecated.
      Parameters:
        `uuid` - The UUID of the drm scheme.
        `mediaDrm` - An underlying `ExoMediaDrm` for use by the manager.
        `callback` - Performs key and provisioning requests.
        `optionalKeyRequestParameters` - An optional map of parameters to pass as the last argument to `MediaDrm.getKeyRequest(byte[], byte[], String, int, HashMap)`. May be null.

  - ### Method Detail

    - #### setMode

          public void setMode(int mode,
                              byte[] playbackLicense)

    - #### getDrmSessionManager

          public com.google.android.exoplayer2.drm.DefaultDrmSessionManager getDrmSessionManager()

    - #### getDrmError

          @Deprecated
          public DrmException getDrmError()

      Deprecated.
      Specified by:
        `getDrmError` in interface `BrightcoveDrmSession`

    - #### queryKeyStatus

          @Deprecated
          public java.util.Map<java.lang.String,java.lang.String> queryKeyStatus()

      Deprecated.
      Specified by:
        `queryKeyStatus` in interface `BrightcoveDrmSession`

    - #### getOfflineLicenseKeySetId

          @Deprecated
          public byte[] getOfflineLicenseKeySetId()

      Deprecated.
      Specified by:
        `getOfflineLicenseKeySetId` in interface `BrightcoveDrmSession`

    - #### getPropertyString

          public java.lang.String getPropertyString(java.lang.String propertyName)

      Specified by:
        `getPropertyString` in interface `BrightcoveDrmSession`
      See Also:
        `MediaDrm.getPropertyString(String)`

    - #### getPropertyByteArray

          public byte[] getPropertyByteArray(java.lang.String propertyName)

      Specified by:
        `getPropertyByteArray` in interface `BrightcoveDrmSession`
      See Also:
        `MediaDrm.getPropertyByteArray(String)`

    - #### setPropertyString

          public void setPropertyString(java.lang.String propertyName,
                                        java.lang.String value)

      Specified by:
        `setPropertyString` in interface `BrightcoveDrmSession`
      See Also:
        `MediaDrm.setPropertyString(String, String)`

    - #### setPropertyByteArray

          public void setPropertyByteArray(java.lang.String propertyName,
                                           byte[] value)

      Specified by:
        `setPropertyByteArray` in interface `BrightcoveDrmSession`
      See Also:
        `MediaDrm.setPropertyByteArray(String, byte[])`

    - #### getSourceProperties

          public java.util.Map<java.lang.String,java.lang.String> getSourceProperties()