public interface ExoMediaDrm<T extends ExoMediaCrypto>
MediaDrm.| Modifier and Type | Interface and Description |
|---|---|
static class |
ExoMediaDrm.KeyRequest |
static class |
ExoMediaDrm.KeyStatus |
static interface |
ExoMediaDrm.OnEventListener<T extends ExoMediaCrypto> |
static interface |
ExoMediaDrm.OnKeyStatusChangeListener<T extends ExoMediaCrypto> |
static class |
ExoMediaDrm.ProvisionRequest |
| Modifier and Type | Field and Description |
|---|---|
static int |
EVENT_KEY_EXPIRED |
static int |
EVENT_KEY_REQUIRED |
static int |
EVENT_PROVISION_REQUIRED |
static int |
KEY_TYPE_OFFLINE |
static int |
KEY_TYPE_RELEASE |
static int |
KEY_TYPE_STREAMING |
| Modifier and Type | Method and Description |
|---|---|
void |
closeSession(byte[] sessionId) |
T |
createMediaCrypto(byte[] initData) |
ExoMediaDrm.KeyRequest |
getKeyRequest(byte[] scope,
java.util.List<DrmInitData.SchemeData> schemeDatas,
int keyType,
java.util.HashMap<java.lang.String,java.lang.String> optionalParameters)
Generates a key request.
|
byte[] |
getPropertyByteArray(java.lang.String propertyName) |
java.lang.String |
getPropertyString(java.lang.String propertyName) |
ExoMediaDrm.ProvisionRequest |
getProvisionRequest() |
byte[] |
openSession() |
byte[] |
provideKeyResponse(byte[] scope,
byte[] response) |
void |
provideProvisionResponse(byte[] response) |
java.util.Map<java.lang.String,java.lang.String> |
queryKeyStatus(byte[] sessionId) |
void |
release() |
void |
restoreKeys(byte[] sessionId,
byte[] keySetId) |
void |
setOnEventListener(ExoMediaDrm.OnEventListener<? super T> listener) |
void |
setOnKeyStatusChangeListener(ExoMediaDrm.OnKeyStatusChangeListener<? super T> listener) |
void |
setPropertyByteArray(java.lang.String propertyName,
byte[] value) |
void |
setPropertyString(java.lang.String propertyName,
java.lang.String value) |
static final int EVENT_KEY_REQUIRED
MediaDrm.EVENT_KEY_REQUIRED,
Constant Field Valuesstatic final int EVENT_KEY_EXPIRED
MediaDrm.EVENT_KEY_EXPIRED,
Constant Field Valuesstatic final int EVENT_PROVISION_REQUIRED
MediaDrm.EVENT_PROVISION_REQUIRED,
Constant Field Valuesstatic final int KEY_TYPE_STREAMING
MediaDrm.KEY_TYPE_STREAMING,
Constant Field Valuesstatic final int KEY_TYPE_OFFLINE
MediaDrm.KEY_TYPE_OFFLINE,
Constant Field Valuesstatic final int KEY_TYPE_RELEASE
MediaDrm.KEY_TYPE_RELEASE,
Constant Field Valuesvoid setOnEventListener(ExoMediaDrm.OnEventListener<? super T> listener)
MediaDrm.setOnEventListener(MediaDrm.OnEventListener)void setOnKeyStatusChangeListener(ExoMediaDrm.OnKeyStatusChangeListener<? super T> listener)
MediaDrm.setOnKeyStatusChangeListener(MediaDrm.OnKeyStatusChangeListener, Handler)byte[] openSession()
throws android.media.MediaDrmException
android.media.MediaDrmExceptionMediaDrm.openSession()void closeSession(byte[] sessionId)
MediaDrm.closeSession(byte[])ExoMediaDrm.KeyRequest getKeyRequest(byte[] scope, @Nullable java.util.List<DrmInitData.SchemeData> schemeDatas, int keyType, @Nullable java.util.HashMap<java.lang.String,java.lang.String> optionalParameters) throws android.media.NotProvisionedException
scope - If keyType is KEY_TYPE_STREAMING or KEY_TYPE_OFFLINE,
the session id that the keys will be provided to. If keyType is KEY_TYPE_RELEASE, the keySetId of the keys to release.schemeDatas - If key type is KEY_TYPE_STREAMING or KEY_TYPE_OFFLINE, a
list of DrmInitData.SchemeData instances extracted from the media. Null otherwise.keyType - The type of the request. Either KEY_TYPE_STREAMING to acquire keys for
streaming, KEY_TYPE_OFFLINE to acquire keys for offline usage, or 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.android.media.NotProvisionedExceptionMediaDrm.getKeyRequest(byte[], byte[], String, int, HashMap)byte[] provideKeyResponse(byte[] scope,
byte[] response)
throws android.media.NotProvisionedException,
android.media.DeniedByServerException
android.media.NotProvisionedExceptionandroid.media.DeniedByServerExceptionMediaDrm.provideKeyResponse(byte[], byte[])ExoMediaDrm.ProvisionRequest getProvisionRequest()
MediaDrm.getProvisionRequest()void provideProvisionResponse(byte[] response)
throws android.media.DeniedByServerException
android.media.DeniedByServerExceptionMediaDrm.provideProvisionResponse(byte[])java.util.Map<java.lang.String,java.lang.String> queryKeyStatus(byte[] sessionId)
MediaDrm.queryKeyStatus(byte[])void release()
MediaDrm.release()void restoreKeys(byte[] sessionId,
byte[] keySetId)
MediaDrm.restoreKeys(byte[], byte[])java.lang.String getPropertyString(java.lang.String propertyName)
MediaDrm.getPropertyString(String)byte[] getPropertyByteArray(java.lang.String propertyName)
MediaDrm.getPropertyByteArray(String)void setPropertyString(java.lang.String propertyName,
java.lang.String value)
MediaDrm.setPropertyString(String, String)void setPropertyByteArray(java.lang.String propertyName,
byte[] value)
MediaDrm.setPropertyByteArray(String, byte[])T createMediaCrypto(byte[] initData) throws android.media.MediaCryptoException
initData - Opaque initialization data specific to the crypto scheme.ExoMediaCrypto, using opaque crypto scheme specific data.android.media.MediaCryptoException - If the instance can't be created.MediaCrypto.MediaCrypto(UUID, byte[])