Package com.castlabs.android.drm
Class CastlabsMediaDrm
java.lang.Object
com.castlabs.android.drm.CastlabsMediaDrm
Wrapper of the
FrameworkMediaDrm
allowing asynchronously close the DRM session.-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoid
closeSession
(byte[] sessionId) Asynchronously close the session with the given IDvoid
closeSessionSync
(byte[] sessionId) Syncroniously close the session with the given IDcom.google.android.exoplayer2.drm.FrameworkMediaCrypto
createMediaCrypto
(byte[] initData) com.google.android.exoplayer2.drm.ExoMediaDrm.KeyRequest
getKeyRequest
(byte[] scope, List<com.google.android.exoplayer2.drm.DrmInitData.SchemeData> schemeDatas, int keyType, HashMap<String, String> optionalParameters) byte[]
getPropertyByteArray
(String propertyName) getPropertyString
(String propertyName) com.google.android.exoplayer2.drm.ExoMediaDrm.ProvisionRequest
static CastlabsMediaDrm
newInstance
(UUID uuid) byte[]
byte[]
provideKeyResponse
(byte[] scope, byte[] response) void
provideProvisionResponse
(byte[] response) queryKeyStatus
(byte[] sessionId) void
release()
void
void
restoreKeys
(byte[] sessionId, byte[] keySetId) void
setOnEventListener
(com.google.android.exoplayer2.drm.ExoMediaDrm.OnEventListener<? super com.google.android.exoplayer2.drm.FrameworkMediaCrypto> listener) void
setOnKeyStatusChangeListener
(com.google.android.exoplayer2.drm.ExoMediaDrm.OnKeyStatusChangeListener<? super com.google.android.exoplayer2.drm.FrameworkMediaCrypto> listener) void
setPropertyByteArray
(String propertyName, byte[] value) void
setPropertyString
(String propertyName, String value)
-
Method Details
-
newInstance
public static CastlabsMediaDrm newInstance(UUID uuid) throws com.google.android.exoplayer2.drm.UnsupportedDrmException - Throws:
com.google.android.exoplayer2.drm.UnsupportedDrmException
-
setOnEventListener
public void setOnEventListener(com.google.android.exoplayer2.drm.ExoMediaDrm.OnEventListener<? super com.google.android.exoplayer2.drm.FrameworkMediaCrypto> listener) -
setOnKeyStatusChangeListener
public void setOnKeyStatusChangeListener(com.google.android.exoplayer2.drm.ExoMediaDrm.OnKeyStatusChangeListener<? super com.google.android.exoplayer2.drm.FrameworkMediaCrypto> listener) -
openSession
public byte[] openSession() throws NotProvisionedException, ResourceBusyException, MediaDrmException -
closeSession
public void closeSession(byte[] sessionId) Asynchronously close the session with the given ID- Parameters:
sessionId
- The session ID
-
closeSessionSync
public void closeSessionSync(byte[] sessionId) Syncroniously close the session with the given ID- Parameters:
sessionId
- The session ID
-
getKeyRequest
public com.google.android.exoplayer2.drm.ExoMediaDrm.KeyRequest getKeyRequest(byte[] scope, @Nullable List<com.google.android.exoplayer2.drm.DrmInitData.SchemeData> schemeDatas, int keyType, HashMap<String, String> optionalParameters) throws NotProvisionedException- Throws:
NotProvisionedException
-
provideKeyResponse
public byte[] provideKeyResponse(byte[] scope, byte[] response) throws NotProvisionedException, DeniedByServerException -
getProvisionRequest
public com.google.android.exoplayer2.drm.ExoMediaDrm.ProvisionRequest getProvisionRequest() -
provideProvisionResponse
- Throws:
DeniedByServerException
-
queryKeyStatus
-
release
public void release() -
releaseAsync
public void releaseAsync() -
restoreKeys
public void restoreKeys(byte[] sessionId, byte[] keySetId) -
getPropertyString
-
getPropertyByteArray
-
setPropertyString
-
setPropertyByteArray
-
createMediaCrypto
public com.google.android.exoplayer2.drm.FrameworkMediaCrypto createMediaCrypto(byte[] initData) throws MediaCryptoException - Throws:
MediaCryptoException
-