DummyExoMediaDrm
@UnstableApi
public final class DummyExoMediaDrm implements ExoMediaDrm
An ExoMediaDrm
that does not support any protection schemes.
Summary
Public constructors |
---|
Public methods |
|
---|---|
void |
acquire() Increments the reference count. |
void |
closeSession(byte[] sessionId) Closes a DRM session. |
CryptoConfig |
createCryptoConfig(byte[] sessionId) Creates a |
int |
Returns the |
static DummyExoMediaDrm |
Returns a new instance. |
ExoMediaDrm.KeyRequest |
getKeyRequest( Generates a key request. |
@Nullable PersistableBundle |
Returns metrics data for this ExoMediaDrm instance, or |
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 |
Generates a provisioning request. |
byte[] |
Opens a new DRM session. |
@Nullable byte[] |
provideKeyResponse(byte[] scope, byte[] response) Provides a key response for the last request to be generated using |
void |
provideProvisionResponse(byte[] response) Provides a provisioning response for the last request to be generated using |
Map<String, String> |
queryKeyStatus(byte[] sessionId) Returns the key status for a given session, as {name, value} pairs. |
void |
release() Decrements the reference count. |
boolean |
requiresSecureDecoder(byte[] sessionId, String mimeType) Returns whether the given session requires use of a secure decoder for the given MIME type. |
void |
restoreKeys(byte[] sessionId, byte[] keySetId) Restores persisted offline keys into a session. |
void |
Sets the listener for DRM events. |
void |
Sets the listener for session expiration events. |
void |
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. |
Inherited Constants |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Inherited methods |
||||||
---|---|---|---|---|---|---|
|
Public constructors
Public methods
acquire
public void acquire()
Increments the reference count. When the caller no longer needs to use the instance, it must call 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.
closeSession
public void closeSession(byte[] sessionId)
Closes a DRM session.
Parameters | |
---|---|
byte[] sessionId |
The ID of the session to close. |
createCryptoConfig
public CryptoConfig createCryptoConfig(byte[] sessionId)
Creates a CryptoConfig
that can be passed to a compatible decoder to allow decryption of protected content using the specified session.
Parameters | |
---|---|
byte[] sessionId |
The ID of the session. |
Returns | |
---|---|
CryptoConfig |
A |
Throws | |
---|---|
android.media.MediaCryptoException |
If a |
getCryptoType
@C.CryptoType
public int getCryptoType()
Returns the type
of CryptoConfig
instances returned by createCryptoConfig
.
getKeyRequest
public ExoMediaDrm.KeyRequest getKeyRequest(
byte[] scope,
@Nullable List<DrmInitData.SchemeData> schemeDatas,
int keyType,
@Nullable HashMap<String, String> optionalParameters
)
Generates a key request.
Parameters | |
---|---|
byte[] scope |
If |
@Nullable List<DrmInitData.SchemeData> schemeDatas |
If key type is |
int keyType |
The type of the request. Either |
@Nullable HashMap<String, String> optionalParameters |
Are included in the key request message to allow a client application to provide additional message parameters to the server. This may be |
Returns | |
---|---|
ExoMediaDrm.KeyRequest |
The generated key request. |
See also | |
---|---|
getKeyRequest |
getMetrics
public @Nullable PersistableBundle getMetrics()
Returns metrics data for this ExoMediaDrm instance, or null
if metrics are unavailable.
getPropertyByteArray
public byte[] getPropertyByteArray(String propertyName)
Returns the value of a byte array property. For standard property names, see getPropertyByteArray
.
Parameters | |
---|---|
String propertyName |
The property name. |
Returns | |
---|---|
byte[] |
The property value. |
Throws | |
---|---|
java.lang.IllegalArgumentException |
If the underlying DRM plugin does not support the property. |
getPropertyString
public String getPropertyString(String propertyName)
Returns the value of a string property. For standard property names, see getPropertyString
.
Parameters | |
---|---|
String propertyName |
The property name. |
Returns | |
---|---|
String |
The property value. |
Throws | |
---|---|
java.lang.IllegalArgumentException |
If the underlying DRM plugin does not support the property. |
getProvisionRequest
public ExoMediaDrm.ProvisionRequest getProvisionRequest()
Generates a provisioning request.
Returns | |
---|---|
ExoMediaDrm.ProvisionRequest |
The generated provisioning request. |
openSession
public byte[] openSession()
Opens a new DRM session. A session ID is returned.
Returns | |
---|---|
byte[] |
The session ID. |
Throws | |
---|---|
android.media.NotProvisionedException |
If provisioning is needed. |
android.media.ResourceBusyException |
If required resources are in use. |
android.media.MediaDrmException |
If the session could not be opened. |
provideKeyResponse
public @Nullable byte[] provideKeyResponse(byte[] scope, byte[] response)
Provides a key response for the last request to be generated using getKeyRequest
.
Parameters | |
---|---|
byte[] scope |
If the request had type |
byte[] response |
The response data from the server. |
Returns | |
---|---|
@Nullable byte[] |
If the request had type |
Throws | |
---|---|
android.media.NotProvisionedException |
If the response indicates that provisioning is needed. |
android.media.DeniedByServerException |
If the response indicates that the server rejected the request. |
provideProvisionResponse
public void provideProvisionResponse(byte[] response)
Provides a provisioning response for the last request to be generated using getProvisionRequest
.
Parameters | |
---|---|
byte[] response |
The response data from the server. |
Throws | |
---|---|
android.media.DeniedByServerException |
If the response indicates that the server rejected the request. |
queryKeyStatus
public Map<String, String> queryKeyStatus(byte[] sessionId)
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.
Parameters | |
---|---|
byte[] sessionId |
The ID of the session being queried. |
release
public void release()
Decrements the reference count. If the reference count drops to 0 underlying resources are released, and the instance cannot be re-used.
requiresSecureDecoder
public boolean requiresSecureDecoder(byte[] sessionId, String mimeType)
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.
Parameters | |
---|---|
byte[] sessionId |
The ID of the session. |
String mimeType |
The content MIME type to query. |
restoreKeys
public void restoreKeys(byte[] sessionId, byte[] keySetId)
Restores persisted offline keys into a session.
Parameters | |
---|---|
byte[] sessionId |
The ID of the session into which the keys will be restored. |
byte[] keySetId |
The |
setOnEventListener
public void setOnEventListener(@Nullable ExoMediaDrm.OnEventListener listener)
Sets the listener for DRM events.
This is an optional method, and some implementations may only support it on certain Android API levels.
Parameters | |
---|---|
@Nullable ExoMediaDrm.OnEventListener listener |
The listener to receive events, or |
Throws | |
---|---|
java.lang.UnsupportedOperationException |
if the implementation doesn't support this method. |
See also | |
---|---|
setOnEventListener |
setOnExpirationUpdateListener
public void setOnExpirationUpdateListener(
@Nullable ExoMediaDrm.OnExpirationUpdateListener listener
)
Sets the listener for session expiration events.
This is an optional method, and some implementations may only support it on certain Android API levels.
Parameters | |
---|---|
@Nullable ExoMediaDrm.OnExpirationUpdateListener listener |
The listener to receive events, or |
Throws | |
---|---|
java.lang.UnsupportedOperationException |
if the implementation doesn't support this method. |
See also | |
---|---|
setOnExpirationUpdateListener |
setOnKeyStatusChangeListener
public void setOnKeyStatusChangeListener(
@Nullable ExoMediaDrm.OnKeyStatusChangeListener listener
)
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.
Parameters | |
---|---|
@Nullable ExoMediaDrm.OnKeyStatusChangeListener listener |
The listener to receive events, or |
Throws | |
---|---|
java.lang.UnsupportedOperationException |
if the implementation doesn't support this method. |
See also | |
---|---|
setOnKeyStatusChangeListener |
setPropertyByteArray
public void setPropertyByteArray(String propertyName, byte[] value)
Sets the value of a byte array property.
Parameters | |
---|---|
String propertyName |
The property name. |
byte[] value |
The value. |
Throws | |
---|---|
java.lang.IllegalArgumentException |
If the underlying DRM plugin does not support the property. |
setPropertyString
public void setPropertyString(String propertyName, String value)
Sets the value of a string property.
Throws | |
---|---|
java.lang.IllegalArgumentException |
If the underlying DRM plugin does not support the property. |