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 TypeMethodDescriptionvoidcloseSession(byte[] sessionId) Asynchronously close the session with the given IDvoidcloseSessionSync(byte[] sessionId) Syncroniously close the session with the given IDcom.google.android.exoplayer2.drm.FrameworkMediaCryptocreateMediaCrypto(byte[] initData) com.google.android.exoplayer2.drm.ExoMediaDrm.KeyRequestgetKeyRequest(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.ProvisionRequeststatic CastlabsMediaDrmnewInstance(UUID uuid) byte[]byte[]provideKeyResponse(byte[] scope, byte[] response) voidprovideProvisionResponse(byte[] response) queryKeyStatus(byte[] sessionId) voidrelease()voidvoidrestoreKeys(byte[] sessionId, byte[] keySetId) voidsetOnEventListener(com.google.android.exoplayer2.drm.ExoMediaDrm.OnEventListener<? super com.google.android.exoplayer2.drm.FrameworkMediaCrypto> listener) voidsetOnKeyStatusChangeListener(com.google.android.exoplayer2.drm.ExoMediaDrm.OnKeyStatusChangeListener<? super com.google.android.exoplayer2.drm.FrameworkMediaCrypto> listener) voidsetPropertyByteArray(String propertyName, byte[] value) voidsetPropertyString(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
-