docs/doc/reference/com/google/android/exoplayer2/drm/FrameworkMediaDrm.html
Package com.google.android.exoplayer2.drm
All Implemented Interfaces:ExoMediaDrm
@RequiresApi(18)[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public final classFrameworkMediaDrmextends[Object](https://developer.android.com/reference/java/lang/Object.html "class or interface in java.lang")implements[ExoMediaDrm](ExoMediaDrm.html "interface in com.google.android.exoplayer2.drm")
Deprecated. com.google.android.exoplayer2 is deprecated. Please migrate to androidx.media3 (which contains the same ExoPlayer code). See the migration guide for more details, including a script to help with the migration.
An ExoMediaDrm implementation that wraps the framework MediaDrm.
-
ExoMediaDrm.AppManagedProvider, ExoMediaDrm.KeyRequest, ExoMediaDrm.KeyStatus, ExoMediaDrm.OnEventListener, ExoMediaDrm.OnExpirationUpdateListener, ExoMediaDrm.OnKeyStatusChangeListener, ExoMediaDrm.Provider, ExoMediaDrm.ProvisionRequest
Fields | Modifier and Type | Field | Description |
| --- | --- | --- |
| static ExoMediaDrm.Provider | DEFAULT_PROVIDER |
Deprecated.
ExoMediaDrm.Provider that returns a new FrameworkMediaDrm for the requested UUID.
|
-
EVENT_KEY_EXPIRED, EVENT_KEY_REQUIRED, EVENT_PROVISION_REQUIRED, KEY_TYPE_OFFLINE, KEY_TYPE_RELEASE, KEY_TYPE_STREAMING
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods | Modifier and Type | Method | Description |
| --- | --- | --- |
| void | acquire() |
Deprecated.
Increments the reference count.
|
| void | closeSession(byte[] sessionId) |
Deprecated.
Closes a DRM session.
|
| FrameworkCryptoConfig | createCryptoConfig(byte[] sessionId) |
Deprecated.
Creates a CryptoConfig that can be passed to a compatible decoder to allow decryption of protected content using the specified session.
|
| @com.google.android.exoplayer2.C.CryptoType int | getCryptoType() |
Deprecated.
Returns the type of CryptoConfig instances returned by ExoMediaDrm.createCryptoConfig(byte[]).
|
| ExoMediaDrm.KeyRequest | getKeyRequest(byte[] scope, List<DrmInitData.SchemeData> schemeDatas, int keyType, HashMap<String,String> optionalParameters) |
Deprecated.
Generates a key request.
|
| PersistableBundle | getMetrics() |
Deprecated.
Returns metrics data for this ExoMediaDrm instance, or null if metrics are unavailable.
|
| byte[] | getPropertyByteArray(String propertyName) |
Deprecated.
Returns the value of a byte array property.
|
| String | getPropertyString(String propertyName) |
Deprecated.
Returns the value of a string property.
|
| ExoMediaDrm.ProvisionRequest | getProvisionRequest() |
Deprecated.
Generates a provisioning request.
|
| static boolean | isCryptoSchemeSupported(UUID uuid) |
Deprecated.
Returns whether the DRM scheme with the given UUID is supported on this device.
|
| static FrameworkMediaDrm | newInstance(UUID uuid) |
Deprecated.
Creates an instance with an initial reference count of 1.
|
| byte[] | openSession() |
Deprecated.
Opens a new DRM session.
|
| byte[] | provideKeyResponse(byte[] scope, byte[] response) |
Deprecated.
Provides a key response for the last request to be generated using ExoMediaDrm.getKeyRequest(byte[], java.util.List<com.google.android.exoplayer2.drm.DrmInitData.SchemeData>, int, java.util.HashMap<java.lang.String, java.lang.String>).
|
| void | provideProvisionResponse(byte[] response) |
Deprecated.
Provides a provisioning response for the last request to be generated using ExoMediaDrm.getProvisionRequest().
|
| Map<String,String> | queryKeyStatus(byte[] sessionId) |
Deprecated.
Returns the key status for a given session, as {name, value} pairs.
|
| void | release() |
Deprecated.
Decrements the reference count.
|
| boolean | requiresSecureDecoder(byte[] sessionId, String mimeType) |
Deprecated.
Returns whether the given session requires use of a secure decoder for the given MIME type.
|
| void | restoreKeys(byte[] sessionId, byte[] keySetId) |
Deprecated.
Restores persisted offline keys into a session.
|
| void | setOnEventListener(ExoMediaDrm.OnEventListener listener) |
Deprecated.
Sets the listener for DRM events.
|
| void | setOnExpirationUpdateListener(ExoMediaDrm.OnExpirationUpdateListener listener) |
Deprecated.
Sets the listener for session expiration events.
|
| void | setOnKeyStatusChangeListener(ExoMediaDrm.OnKeyStatusChangeListener listener) |
Deprecated.
Sets the listener for key status change events.
|
| void | setPlayerIdForSession(byte[] sessionId, PlayerId playerId) |
Deprecated.
Sets the PlayerId of the player using a session.
|
| void | setPropertyByteArray(String propertyName, byte[] value) |
Deprecated.
Sets the value of a byte array property.
|
| void | setPropertyString(String propertyName, String value) |
Deprecated.
Sets the value of a string property. |
-
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
public static final[ExoMediaDrm.Provider](ExoMediaDrm.Provider.html "interface in com.google.android.exoplayer2.drm")DEFAULT_PROVIDER
Deprecated.
ExoMediaDrm.Provider that returns a new FrameworkMediaDrm for the requested UUID. Returns a DummyExoMediaDrm if the protection scheme identified by the given UUID is not supported by the device.
-
public static boolean isCryptoSchemeSupported([UUID](https://developer.android.com/reference/java/util/UUID.html "class or interface in java.util")uuid)
Deprecated.
Returns whether the DRM scheme with the given UUID is supported on this device.
See Also:MediaDrm.isCryptoSchemeSupported(UUID)
-
public static[FrameworkMediaDrm](FrameworkMediaDrm.html "class in com.google.android.exoplayer2.drm")newInstance([UUID](https://developer.android.com/reference/java/util/UUID.html "class or interface in java.util")uuid)
throws[UnsupportedDrmException](UnsupportedDrmException.html "class in com.google.android.exoplayer2.drm")
Deprecated.
Creates an instance with an initial reference count of 1. release() must be called on the instance when it's no longer required.
Parameters:uuid - The scheme uuid.Returns:The created instance.Throws:UnsupportedDrmException - If the DRM scheme is unsupported or cannot be instantiated.
-
public void setOnEventListener(@Nullable[ExoMediaDrm.OnEventListener](ExoMediaDrm.OnEventListener.html "interface in com.google.android.exoplayer2.drm")listener)
Deprecated.
Description copied from interface: ExoMediaDrm
Sets the listener for DRM events.
This is an optional method, and some implementations may only support it on certain Android API levels.
Specified by:setOnEventListener in interface ExoMediaDrmParameters:listener - The listener to receive events, or null to stop receiving events.See Also:MediaDrm.setOnEventListener(MediaDrm.OnEventListener)
-
@RequiresApi(23)
public void setOnKeyStatusChangeListener(@Nullable[ExoMediaDrm.OnKeyStatusChangeListener](ExoMediaDrm.OnKeyStatusChangeListener.html "interface in com.google.android.exoplayer2.drm")listener)
Deprecated.
Sets the listener for key status change events.
This is an optional method, and some implementations may only support it on certain Android API levels.
Specified by:setOnKeyStatusChangeListener in interface ExoMediaDrmParameters:listener - The listener to receive events, or null to stop receiving events.Throws:UnsupportedOperationException - on API levels lower than 23.See Also:MediaDrm.setOnKeyStatusChangeListener(MediaDrm.OnKeyStatusChangeListener, Handler)
-
@RequiresApi(23)
public void setOnExpirationUpdateListener(@Nullable[ExoMediaDrm.OnExpirationUpdateListener](ExoMediaDrm.OnExpirationUpdateListener.html "interface in com.google.android.exoplayer2.drm")listener)
Deprecated.
Sets the listener for session expiration events.
This is an optional method, and some implementations may only support it on certain Android API levels.
Specified by:setOnExpirationUpdateListener in interface ExoMediaDrmParameters:listener - The listener to receive events, or null to stop receiving events.Throws:UnsupportedOperationException - on API levels lower than 23.See Also:MediaDrm.setOnExpirationUpdateListener(MediaDrm.OnExpirationUpdateListener, Handler)
-
public byte[] openSession()
throws[MediaDrmException](https://developer.android.com/reference/android/media/MediaDrmException.html "class or interface in android.media")
Deprecated.
Description copied from interface: ExoMediaDrm
Opens a new DRM session. A session ID is returned.
Specified by:openSession in interface ExoMediaDrmReturns:The session ID.Throws:NotProvisionedException - If provisioning is needed.ResourceBusyException - If required resources are in use.MediaDrmException - If the session could not be opened.
-
public void closeSession(byte[] sessionId)
Deprecated.
Description copied from interface: ExoMediaDrm
Closes a DRM session.
Specified by:closeSession in interface ExoMediaDrmParameters:sessionId - The ID of the session to close.
-
public void setPlayerIdForSession(byte[] sessionId,[PlayerId](../analytics/PlayerId.html "class in com.google.android.exoplayer2.analytics")playerId)
Deprecated.
Description copied from interface: ExoMediaDrm
Sets the PlayerId of the player using a session.
Specified by:setPlayerIdForSession in interface ExoMediaDrmParameters:sessionId - The ID of the session.playerId - The PlayerId of the player using the session.
-
public[ExoMediaDrm.KeyRequest](ExoMediaDrm.KeyRequest.html "class in com.google.android.exoplayer2.drm")getKeyRequest(byte[] scope,
@Nullable[List](https://developer.android.com/reference/java/util/List.html "class or interface in java.util")<[DrmInitData.SchemeData](DrmInitData.SchemeData.html "class in com.google.android.exoplayer2.drm")> schemeDatas,
int keyType,
@Nullable[HashMap](https://developer.android.com/reference/java/util/HashMap.html "class or interface in java.util")<[String](https://developer.android.com/reference/java/lang/String.html?is-external=true "class or interface in java.lang"),[String](https://developer.android.com/reference/java/lang/String.html?is-external=true "class or interface in java.lang")> optionalParameters)
throws[NotProvisionedException](https://developer.android.com/reference/android/media/NotProvisionedException.html "class or interface in android.media")
Deprecated.
Description copied from interface: ExoMediaDrm
Generates a key request.
Specified by:getKeyRequest in interface ExoMediaDrmParameters:scope - If keyType is ExoMediaDrm.KEY_TYPE_STREAMING or ExoMediaDrm.KEY_TYPE_OFFLINE, the ID of the session that the keys will be provided to. If keyType is ExoMediaDrm.KEY_TYPE_RELEASE, the keySetId of the keys to release.schemeDatas - If key type is ExoMediaDrm.KEY_TYPE_STREAMING or ExoMediaDrm.KEY_TYPE_OFFLINE, a list of DrmInitData.SchemeData instances extracted from the media. Null otherwise.keyType - The type of the request. Either ExoMediaDrm.KEY_TYPE_STREAMING to acquire keys for streaming, ExoMediaDrm.KEY_TYPE_OFFLINE to acquire keys for offline usage, or ExoMediaDrm.KEY_TYPE_RELEASE to release acquired keys. Releasing keys invalidates them for all sessions.optionalParameters - Are included in the key request message to allow a client application to provide additional message parameters to the server. This may be null if no additional parameters are to be sent.Returns:The generated key request.Throws:NotProvisionedExceptionSee Also:MediaDrm.getKeyRequest(byte[], byte[], String, int, HashMap)
-
@Nullable
public byte[] provideKeyResponse(byte[] scope,
byte[] response)
throws[NotProvisionedException](https://developer.android.com/reference/android/media/NotProvisionedException.html "class or interface in android.media"),[DeniedByServerException](https://developer.android.com/reference/android/media/DeniedByServerException.html "class or interface in android.media")
Deprecated.
Description copied from interface: ExoMediaDrm
Provides a key response for the last request to be generated using ExoMediaDrm.getKeyRequest(byte[], java.util.List<com.google.android.exoplayer2.drm.DrmInitData.SchemeData>, int, java.util.HashMap<java.lang.String, java.lang.String>).
Specified by:provideKeyResponse in interface ExoMediaDrmParameters:scope - If the request had type ExoMediaDrm.KEY_TYPE_STREAMING or ExoMediaDrm.KEY_TYPE_OFFLINE, the ID of the session to provide the keys to. If keyType is ExoMediaDrm.KEY_TYPE_RELEASE, the keySetId of the keys being released.response - The response data from the server.Returns:If the request had type ExoMediaDrm.KEY_TYPE_OFFLINE, the keySetId for the offline keys. An empty byte array or null may be returned for other cases.Throws:NotProvisionedException - If the response indicates that provisioning is needed.DeniedByServerException - If the response indicates that the server rejected the request.
-
public[ExoMediaDrm.ProvisionRequest](ExoMediaDrm.ProvisionRequest.html "class in com.google.android.exoplayer2.drm")getProvisionRequest()
Deprecated.
Description copied from interface: ExoMediaDrm
Generates a provisioning request.
Specified by:getProvisionRequest in interface ExoMediaDrmReturns:The generated provisioning request.
-
public void provideProvisionResponse(byte[] response)
throws[DeniedByServerException](https://developer.android.com/reference/android/media/DeniedByServerException.html "class or interface in android.media")
Deprecated.
Description copied from interface: ExoMediaDrm
Provides a provisioning response for the last request to be generated using ExoMediaDrm.getProvisionRequest().
Specified by:provideProvisionResponse in interface ExoMediaDrmParameters:response - The response data from the server.Throws:DeniedByServerException - If the response indicates that the server rejected the request.
-
public[Map](https://developer.android.com/reference/java/util/Map.html "class or interface in java.util")<[String](https://developer.android.com/reference/java/lang/String.html?is-external=true "class or interface in java.lang"),[String](https://developer.android.com/reference/java/lang/String.html?is-external=true "class or interface in java.lang")> queryKeyStatus(byte[] sessionId)
Deprecated.
Description copied from interface: ExoMediaDrm
Returns the key status for a given session, as {name, value} pairs. Since DRM license policies vary by vendor, the returned entries depend on the DRM plugin being used. Refer to your DRM provider's documentation for more information.
Specified by:queryKeyStatus in interface ExoMediaDrmParameters:sessionId - The ID of the session being queried.Returns:The key status for the session.
-
public boolean requiresSecureDecoder(byte[] sessionId,[String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")mimeType)
Deprecated.
Description copied from interface: ExoMediaDrm
Returns whether the given session requires use of a secure decoder for the given MIME type. Assumes a license policy that requires the highest level of security supported by the session.
Specified by:requiresSecureDecoder in interface ExoMediaDrmParameters:sessionId - The ID of the session.mimeType - The content MIME type to query.
-
public void acquire()
Deprecated.
Description copied from interface: ExoMediaDrm
Increments the reference count. When the caller no longer needs to use the instance, it must call ExoMediaDrm.release() to decrement the reference count.
A new instance will have an initial reference count of 1, and therefore it is not normally necessary for application code to call this method.
Specified by:acquire in interface ExoMediaDrm
-
public void release()
Deprecated.
Description copied from interface: ExoMediaDrm
Decrements the reference count. If the reference count drops to 0 underlying resources are released, and the instance cannot be re-used.
Specified by:release in interface ExoMediaDrm
-
public void restoreKeys(byte[] sessionId,
byte[] keySetId)
Deprecated.
Description copied from interface: ExoMediaDrm
Restores persisted offline keys into a session.
Specified by:restoreKeys in interface ExoMediaDrmParameters:sessionId - The ID of the session into which the keys will be restored.keySetId - The keySetId of the keys to restore, as provided by the call to ExoMediaDrm.provideKeyResponse(byte[], byte[]) that persisted them.
-
@Nullable
public[PersistableBundle](https://developer.android.com/reference/android/os/PersistableBundle.html "class or interface in android.os")getMetrics()
Deprecated.
Description copied from interface: ExoMediaDrm
Returns metrics data for this ExoMediaDrm instance, or null if metrics are unavailable.
Specified by:getMetrics in interface ExoMediaDrm
-
public[String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")getPropertyString([String](https://developer.android.com/reference/java/lang/String.html?is-external=true "class or interface in java.lang")propertyName)
Deprecated.
Description copied from interface: ExoMediaDrm
Returns the value of a string property. For standard property names, see MediaDrm.getPropertyString(java.lang.String).
Specified by:getPropertyString in interface ExoMediaDrmParameters:propertyName - The property name.Returns:The property value.
-
public byte[] getPropertyByteArray([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")propertyName)
Deprecated.
Description copied from interface: ExoMediaDrm
Returns the value of a byte array property. For standard property names, see MediaDrm.getPropertyByteArray(java.lang.String).
Specified by:getPropertyByteArray in interface ExoMediaDrmParameters:propertyName - The property name.Returns:The property value.
-
public void setPropertyString([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")propertyName,[String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")value)
Deprecated.
Description copied from interface: ExoMediaDrm
Sets the value of a string property.
Specified by:setPropertyString in interface ExoMediaDrmParameters:propertyName - The property name.value - The value.
-
public void setPropertyByteArray([String](https://developer.android.com/reference/java/lang/String.html "class or interface in java.lang")propertyName,
byte[] value)
Deprecated.
Description copied from interface: ExoMediaDrm
Sets the value of a byte array property.
Specified by:setPropertyByteArray in interface ExoMediaDrmParameters:propertyName - The property name.value - The value.
-
public[FrameworkCryptoConfig](FrameworkCryptoConfig.html "class in com.google.android.exoplayer2.drm")createCryptoConfig(byte[] sessionId)
throws[MediaCryptoException](https://developer.android.com/reference/android/media/MediaCryptoException.html "class or interface in android.media")
Deprecated.
Description copied from interface: ExoMediaDrm
Creates a CryptoConfig that can be passed to a compatible decoder to allow decryption of protected content using the specified session.
Specified by:createCryptoConfig in interface ExoMediaDrmParameters:sessionId - The ID of the session.Returns:A CryptoConfig for the given session.Throws:MediaCryptoException - If a CryptoConfig could not be created.
-
public @com.google.android.exoplayer2.C.CryptoType int getCryptoType()
Deprecated.
Description copied from interface: ExoMediaDrm
Returns the type of CryptoConfig instances returned by ExoMediaDrm.createCryptoConfig(byte[]).
Specified by:getCryptoType in interface ExoMediaDrm