Package com.castlabs.sdk.drm
Class DrmDeviceTimeCheckerPlugin
java.lang.Object
com.castlabs.android.Plugin
com.castlabs.sdk.drm.DrmDeviceTimeCheckerPlugin
This plugin will perform periodic checks related to DRM licensing.
In order to workaround a Widevine limitation
this plugin performs some time-related checks while playing protected content. The limitation lies
in changing the local device time in order to trick the DRM Content Decryption Module (CDM).
If the license is expired, the plugin will stop playback and throw a fatal exception (
CastlabsPlayerException.SEVERITY_ERROR
)
of type CastlabsPlayerException.TYPE_KEY_EXPIRED
.
Before you can use this plugin, you need to register it with the PlayerSDK
before
you initialize the SDK itself. For example:
PlayerSDK.register(new DrmDeviceTimeCheckerPlugin());
// ...
PlayerSDK.init(getApplicationContext());
Optionally, you can specify the time period at which he license checks should be performed.
Default value is every 5 minutes (DEFAULT_CHECK_INTERVAL_SEC
).
// ...
PlayerSDK.register(new DrmDeviceTimeCheckerPlugin(60)); // Check every minute
// ...
This plugin needs two extra Android permissions. These permissions allow to internally keep
track of license times.
These permissions are automatically added to your AndroidManifest file once you include this
plugin in your build file.
This plugin provides a first line of defense against this practice, and it should be noted that
this is not a bulletproof solution, since such thing could only be done by the CDM.
Note that this plugin will only perform license checks taking into account the License's absolute
expiration date, and not the play duration field.- Since:
- 4.2.0
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Default value for the time in between checks -
Constructor Summary
ConstructorDescriptionSame as callingDrmDeviceTimeCheckerPlugin(int)
withDEFAULT_CHECK_INTERVAL_SEC
DrmDeviceTimeCheckerPlugin
(int checkIntervalSec) -
Method Summary
Methods inherited from class com.castlabs.android.Plugin
onRemotePlay
-
Field Details
-
DEFAULT_CHECK_INTERVAL_SEC
public static final int DEFAULT_CHECK_INTERVAL_SECDefault value for the time in between checks- See Also:
-
-
Constructor Details
-
DrmDeviceTimeCheckerPlugin
public DrmDeviceTimeCheckerPlugin()Same as callingDrmDeviceTimeCheckerPlugin(int)
withDEFAULT_CHECK_INTERVAL_SEC
-
DrmDeviceTimeCheckerPlugin
public DrmDeviceTimeCheckerPlugin(int checkIntervalSec) - Parameters:
checkIntervalSec
- How often will the check be performed
-
-
Method Details