DRM preferences and security levels

The devices on which the player runs may support DRM key systems at different security levels. Four increasing security levels are defined:
1. OTVDRMSL_UNKNOWN
2. OTVDRMSL_SW
3. OTVDRMSL_HW_CRYPT
4. OTVDRMSL_HW_DECODE

The SDK provides mechanisms by which the application can specify its preferred DRM key system. An API is provided to find the security level of supported key systems on the device in order to aid in selection of the preferred key system.

A DRM key system is identified by a String. The String values are defined by EME, for example com.widevine.alpha.

Querying security level capabilities

To query security level capabilities use the getOTVDrmInfo() API call which returns an array of the DRM capabilities.

OTVDrmInfo[] list = OTVDRM.getOTVDrmInfo();

Setting the preferred DRM key system

OTVDRM.setPreferredDrm("com.widevine.alpha");

The actual DRM key system used may differ from the preferred if the preferred is not supported on the device or the content to be played is not encoded for the preferred key system.

Finding the actual key system used for playback

The application may select a preferred key system which is not supported by the device, or not supported for a piece of content. In this case, the SDK will use a different key system. To find the actual key system in use during playback:

String keySystem = OTVDRM.getCurrentSelectedDrm();