ExoMediaDrmpublic final class DummyExoMediaDrm extends Object implements ExoMediaDrm
ExoMediaDrm that does not support any protection schemes.ExoMediaDrm.AppManagedProvider, ExoMediaDrm.KeyRequest, ExoMediaDrm.KeyStatus, ExoMediaDrm.OnEventListener, ExoMediaDrm.OnExpirationUpdateListener, ExoMediaDrm.OnKeyStatusChangeListener, ExoMediaDrm.Provider, ExoMediaDrm.ProvisionRequestEVENT_KEY_EXPIRED, EVENT_KEY_REQUIRED, EVENT_PROVISION_REQUIRED, KEY_TYPE_OFFLINE, KEY_TYPE_RELEASE, KEY_TYPE_STREAMING| Constructor | Description |
|---|---|
DummyExoMediaDrm() |
| Modifier and Type | Method | Description |
|---|---|---|
void |
acquire() |
Increments the reference count.
|
void |
closeSession(byte[] sessionId) |
Closes a DRM session.
|
ExoMediaCrypto |
createMediaCrypto(byte[] sessionId) |
Creates an
ExoMediaCrypto for a given session. |
Class<UnsupportedMediaCrypto> |
getExoMediaCryptoType() |
Returns the
ExoMediaCrypto type created by ExoMediaDrm.createMediaCrypto(byte[]). |
static DummyExoMediaDrm |
getInstance() |
Returns a new instance.
|
ExoMediaDrm.KeyRequest |
getKeyRequest(byte[] scope,
List<DrmInitData.SchemeData> schemeDatas,
int keyType,
HashMap<String,String> optionalParameters) |
Generates a key request.
|
PersistableBundle |
getMetrics() |
Returns metrics data for this ExoMediaDrm instance, or
null if metrics are unavailable. |
byte[] |
getPropertyByteArray(String propertyName) |
Returns the value of a byte array property.
|
String |
getPropertyString(String propertyName) |
Returns the value of a string property.
|
ExoMediaDrm.ProvisionRequest |
getProvisionRequest() |
Generates a provisioning request.
|
byte[] |
openSession() |
Opens a new DRM session.
|
byte[] |
provideKeyResponse(byte[] scope,
byte[] response) |
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) |
Provides a provisioning response for the last request to be generated using
ExoMediaDrm.getProvisionRequest(). |
Map<String,String> |
queryKeyStatus(byte[] sessionId) |
Returns the key status for a given session, as {name, value} pairs.
|
void |
release() |
Decrements the reference count.
|
void |
restoreKeys(byte[] sessionId,
byte[] keySetId) |
Restores persisted offline keys into a session.
|
void |
setOnEventListener(ExoMediaDrm.OnEventListener listener) |
Sets the listener for DRM events.
|
void |
setOnExpirationUpdateListener(ExoMediaDrm.OnExpirationUpdateListener listener) |
Sets the listener for session expiration events.
|
void |
setOnKeyStatusChangeListener(ExoMediaDrm.OnKeyStatusChangeListener listener) |
Sets the listener for key status change events.
|
void |
setPropertyByteArray(String propertyName,
byte[] value) |
Sets the value of a byte array property.
|
void |
setPropertyString(String propertyName,
String value) |
Sets the value of a string property.
|
public static DummyExoMediaDrm getInstance()
public void setOnEventListener(@Nullable
ExoMediaDrm.OnEventListener listener)
ExoMediaDrmThis is an optional method, and some implementations may only support it on certain Android API levels.
setOnEventListener in interface ExoMediaDrmlistener - The listener to receive events, or null to stop receiving events.MediaDrm.setOnEventListener(MediaDrm.OnEventListener)public void setOnKeyStatusChangeListener(@Nullable
ExoMediaDrm.OnKeyStatusChangeListener listener)
ExoMediaDrmThis is an optional method, and some implementations may only support it on certain Android API levels.
setOnKeyStatusChangeListener in interface ExoMediaDrmlistener - The listener to receive events, or null to stop receiving events.MediaDrm.setOnKeyStatusChangeListener(MediaDrm.OnKeyStatusChangeListener, Handler)public void setOnExpirationUpdateListener(@Nullable
ExoMediaDrm.OnExpirationUpdateListener listener)
ExoMediaDrmThis is an optional method, and some implementations may only support it on certain Android API levels.
setOnExpirationUpdateListener in interface ExoMediaDrmlistener - The listener to receive events, or null to stop receiving events.MediaDrm.setOnExpirationUpdateListener(MediaDrm.OnExpirationUpdateListener, Handler)public byte[] openSession()
throws MediaDrmException
ExoMediaDrmopenSession in interface ExoMediaDrmNotProvisionedException - If provisioning is needed.ResourceBusyException - If required resources are in use.MediaDrmException - If the session could not be opened.public void closeSession(byte[] sessionId)
ExoMediaDrmcloseSession in interface ExoMediaDrmsessionId - The ID of the session to close.public ExoMediaDrm.KeyRequest getKeyRequest(byte[] scope, @Nullable List<DrmInitData.SchemeData> schemeDatas, int keyType, @Nullable HashMap<String,String> optionalParameters)
ExoMediaDrmgetKeyRequest in interface ExoMediaDrmscope - 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.MediaDrm.getKeyRequest(byte[], byte[], String, int, HashMap)@Nullable
public byte[] provideKeyResponse(byte[] scope,
byte[] response)
ExoMediaDrmExoMediaDrm.getKeyRequest(byte[], java.util.List<com.google.android.exoplayer2.drm.DrmInitData.SchemeData>, int, java.util.HashMap<java.lang.String, java.lang.String>).provideKeyResponse in interface ExoMediaDrmscope - 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.ExoMediaDrm.KEY_TYPE_OFFLINE, the keySetId for the offline
keys. An empty byte array or null may be returned for other cases.public ExoMediaDrm.ProvisionRequest getProvisionRequest()
ExoMediaDrmgetProvisionRequest in interface ExoMediaDrmpublic void provideProvisionResponse(byte[] response)
ExoMediaDrmExoMediaDrm.getProvisionRequest().provideProvisionResponse in interface ExoMediaDrmresponse - The response data from the server.public Map<String,String> queryKeyStatus(byte[] sessionId)
ExoMediaDrmqueryKeyStatus in interface ExoMediaDrmsessionId - The ID of the session being queried.public void acquire()
ExoMediaDrmExoMediaDrm.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.
acquire in interface ExoMediaDrmpublic void release()
ExoMediaDrmrelease in interface ExoMediaDrmpublic void restoreKeys(byte[] sessionId,
byte[] keySetId)
ExoMediaDrmrestoreKeys in interface ExoMediaDrmsessionId - 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 getMetrics()
ExoMediaDrmnull if metrics are unavailable.getMetrics in interface ExoMediaDrmpublic String getPropertyString(String propertyName)
ExoMediaDrmMediaDrm.getPropertyString(java.lang.String).getPropertyString in interface ExoMediaDrmpropertyName - The property name.public byte[] getPropertyByteArray(String propertyName)
ExoMediaDrmMediaDrm.getPropertyByteArray(java.lang.String).getPropertyByteArray in interface ExoMediaDrmpropertyName - The property name.public void setPropertyString(String propertyName, String value)
ExoMediaDrmsetPropertyString in interface ExoMediaDrmpropertyName - The property name.value - The value.public void setPropertyByteArray(String propertyName, byte[] value)
ExoMediaDrmsetPropertyByteArray in interface ExoMediaDrmpropertyName - The property name.value - The value.public ExoMediaCrypto createMediaCrypto(byte[] sessionId)
ExoMediaDrmExoMediaCrypto for a given session.createMediaCrypto in interface ExoMediaDrmsessionId - The ID of the session.ExoMediaCrypto for the given session.public Class<UnsupportedMediaCrypto> getExoMediaCryptoType()
ExoMediaDrmExoMediaCrypto type created by ExoMediaDrm.createMediaCrypto(byte[]).getExoMediaCryptoType in interface ExoMediaDrm