Skip to main content
Skip table of contents

Playback of PRM encrypted content

To test this feature and view the example code, please see the Android SDK 4 Example Code Quick Start guide.

The Android Player SDK provides tools to enable playback of NAGRA Persistent Rights Management (PRM) encrypted streams.

Handling PRM-encrypted content requires additional files:

  • NAGRA PAK libraries to handle PRM on open devices (provided with the SDK package):
    • opy-sdk-android-4.25.x-cpakjava.securestorageagent-3.11.2.0.jar
    • opy-sdk-android-4.25.x-cpak-3.11.2.0.jar
  • Operator Vault (usually named opvault.json) (supplied separately) associating a licence server with an operator's account.

The prm-encrypted-playback example code demonstrates how to set up playback using PRM Indirect mode (meaning it is the application that handles the acquisition of the licence) with the assistance of various classes in the pak directory of the example code (you may copy the entire directory to your application).

The pak directory (com.nagra.example.prmencrypted.pak package) contains a set of classes that simplify access to the objects in the PAK libraries, in particular, the PakCore class.

This package provides a DRMHandler singleton class that handles all access to the PAK resources. It is supported by operation delegates (for different access modes), listeners, and other helper classes, thus eliminating the need to access PakCore directly.

PAK modes

The PAK can be initialised in either indirect or direct (silent) mode. The two modes are mutually exclusive; you must always initialise the PAK in the same mode.

Indirect mode

In indirect mode, the client application must be integrated with the remote server portal to send and retrieve initialisation payloads generated by the PAK and the licence server.

Direct mode

In direct mode, the PAK connects directly to the licence server to retrieve initialisation payloads. The client application and the remote server portal do not need to be involved in these exchanges, but they should exchange data through application data sent along the initialisation exchanges, typically to manage authentication of initialise requests. This mode is generally easier to implement but reduces flexibility as the application has no direct control over the communication with the remote server portal.

Prerequisites

The player has been created, and the application is configured for clear content.

A PRM licence server is available and configured.

An encrypted stream is available for testing (encryption keys known to the licence server).

A specific Operator Vault (OpVault) that matches your PRM-enabled licence server (provided separately) is available.

The CPAK libraries (provided in the SDK package) are available.

Process

The full process involves the following steps:

First step:   Setting up the build configuration

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.